【spring】Building Java Projects with Maven
来源:互联网 发布:精仿rmb货到付款淘宝 编辑:程序博客网 时间:2024/05/21 19:31
用Maven建立Java工程
本指南将引导你通过使用Maven来建立一个简单的Java工程。
1、你将建立的工程是什么-What you'll build
2、你将需要什么-What you'll need
- 大约15分钟
- 一个最爱的文本编辑器或者IDE
- JDK6以上
3、如何完成这个指南-How to complete this guide
就像Spring入门指南一样,你可以从头开始并完成每一步,或者你可以绕过那些对你来说已经熟悉的
创建步骤。无论是那种方式,你都完成了工作代码。
从头开始的,转到“4、建立工程”。
绕过基本配置的,按照下面的步骤操作:
- 下载并解压缩本指南的源码,或者使用Git命令来复制:
- 使用cd命令进入目录gs-maven/initial
- 跳到[initial]的头部
4、建立工程-Set up the project
首先,你需要为Maven建立一个Java工程来做构建。为保持对Maven的专注,我们现在尽可能让工程
越简单越好。
创建目录结构
在你选择的工程目录下,创建如下的子目录结构;例如,
在*nix系统下使用mkdir -p src/main/java/hello:
(另加:在windows下可以用:mkdir src\main\java\hello)
└── src └── main └── java └── hello
在src/main/java/hello目录下,你可以创建任何你想要的类。为了与本指南的其余部分保持一致,
下面需要创建这两个类:HelloWorld.java和Greeter.java。
src/main/java/hello/HelloWorld.java
package hello;public class HelloWorld { public static void main(String[] args) { Greeter greeter = new Greeter(); System.out.println(greeter.sayHello()); }}
src/main/java/hello/Greeter.java
package hello;public class Greeter { public String sayHello() { return "Hello world!"; }}
到目前,你有一个准备好了可以被Maven构建的工程了,接下来的步骤是安装Maven。
Maven在链接:http://maven.apache.org/download.cgi 作为一个zip文件可以下载的。只有其中的二进制
文件是需要的,因此查找到apache-maven-{version}-bin.zip或者apache-maven-{version}-bin.tar.gz
的链接。
一旦你已经下载那个zip文件,解压缩到你的电脑上。然后把bin文件夹的路径加入到你的计算机
的path中。
下面测试一下Maven的安装是否成功,在控制台命令行运行mvn命令:
(注意,新修改系统变量path后,需要新建一个控制台窗口才会生效,之前打开的控制台窗口不会生效。)
Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\sine>mvn -vError: JAVA_HOME not found in your environment.Please set the JAVA_HOME variable in your environment to match thelocation of your Java installation.C:\Documents and Settings\sine>
上述提示表示系统变量中没有设置JAVA_HOME变量。在系统变量中添加JAVA_HOME即可,其值为jdk的
安装路径:如,C:\Program Files\Java\jdk1.7.0_60
重新打开一个控制台命令行,运行mvn -v 或者 mvn -version,显示如下:
C:\Documents and Settings\sine>mvn -vApache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T04:58:10+08:00)Maven home: D:\Java\Spring\apache-maven\apache-maven-3.2.3\bin\..Java version: 1.7.0_60, vendor: Oracle CorporationJava home: C:\Program Files\Java\jdk1.7.0_60\jreDefault locale: zh_CN, platform encoding: GBKOS name: "windows xp", version: "5.1", arch: "x86", family: "windows"
现在,恭喜您已经成功安装Maven了。更多Maven配置说明请参考:Apache Maven安装说明
5、定义一个简单的Maven构建器-Define a simple Maven build
在Maven被成功安装后,你需要创建一个Maven工程定义。Maven是被命名为pom.xml的XML文件来定义的。
除了别的之外,这个XML文件中给出了工程的名称,版本,以及它对外部库文件的依赖关系。
在工程的根目录下创建一个XML文件,名称为:pom.xml,其内容如下:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.springframework</groupId> <artifactId>gs-maven</artifactId> <packaging>jar</packaging> <version>0.1.0</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>hello.HelloWorld</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build></project>
除了<packaging>元素是可选的外,创建一个Java工程所必要xml配置,这个对pom.xml文件来说是
最简单的可能。它包含以下工程配置方面的信息:
- <modelVersion> - POM模型版本(总是4.0.0)
- <groupId> - 项目属于的团体或者组织。通常表示为一个倒置的域名。
- <artifactId> - 给本工程的库文件的名字(例如,它的JAR或者WAR文件的名字)
- <version> - 当前构建的工程的版本。
- <packaging> - 这个工程应该怎么被打包。默认情况下,"jar"表示打包成JAR文件,用"war"表示
在这里,你拥有了一个最小的,有Maven能力的工程定义。
6、构建Java代码-Build Java code
Maven已经准备好要去构建工程了。你可以用Maven执行几个构建生命周期的目标了,包括这些目标:
编译工程的代码,创建库文件打包(比如,一个JAR文件),以及安装这个库文件到本地的Maven依赖库中。
为了尝试构建工程,命令行执行下面的命令:(命令执行的目录是工程的根目录下)
mvn compile
这样将会运行Maven,告诉它执行编译。当编译完成后,你将会在target/classes目录下发现编译
生成的.class文件。
你未必想直接用.class文件发布或者工作,这个时候,你很可能想运行package:
mvn package
package命令运行后,会编译你的Java代码,跑所有的测试,最后以打包代码到一个JAR文件到
target目录中来结束。这里JAR文件的名字是基于工程的<artifactId>和<version>。
例如,前面给出的最小的pom.xml,它生成JAR文件将被命名为gs-maven-0.1.0.jar。
Note:If you’ve changed the value of <packaging> from "jar" to "war", the result
will be a WAR file within the target directory instead of a JAR file.
为了快速对项目依赖的访问,Maven在你的本地机器上还维护一个依赖库(usually in
a .m2/repository directory in your home directory)。
如果你想要安装你项目的JAR文件到本地库中,你需要调用install命令:
mvn install
这里执行install命令后,将会编译,测试以及打包你的项目代码,之后再拷贝它到本地的依赖库中,
为另外的项目对它的依赖做准备。
既然这里谈到了依赖性,现在是时候介绍在Maven构建中如何声明依赖性。
7、声明依赖性-Declare Dependencies
简单的HelloWorld样例是完全的自包含,并且没有依赖任何额外的库文件。然而,大多数应用程序
是依赖外部的库文件来处理普通或者复杂的功能的。
例如,假设除了打印”Hello World!“外,你还想要应用程序打印当前的日期和时间。当然,
这里你可以用本地Java库文件自带的日期时间类,不过你可以让事情更有趣,我们这里使用
Joda Time库文件。
首先,按照以下方式修改HelloWorld.java文件:
src/main/java/hello/HelloWorld.java
package hello;import org.joda.time.LocalTime;public class HelloWorld { public static void main(String[] args) {LocalTime currentTime = new LocalTime();System.out.println("The current local time is: " + currentTime);Greeter greeter = new Greeter();System.out.println(greeter.sayHello());}}
这里,HelloWorld使用Joda Time的LocalTime类来获取和打印当前时间。
如果你此时就用mvn compile来构建工程的话,那么将会失败。失败的原因的是,没有在构建文件
中声明Joda Time作为编译依赖。你可以把下面的几行加入到pom.xml(在<project>元素内部):
<dependencies> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.2</version> </dependency> </dependencies>
这个XML模块声明工程需要的依赖库列表。特别地,这里仅仅为Joda Time库声明了一个依赖性。
在<dependency>元素里面,这个依赖坐标是通过3个子元素来定义的:
- <groupId> - The group or organization that the dependency belongs to.
- <artifactId> - The library that is required.
- <version> - The specific version of the library that is required.
- provided - Dependencies that are required for compiling the project code, but that will be provided at runtime by a container running the code (e.g., the Java Servlet API).
- test - Dependencies that are used for compiling and running tests, but not required
这里提供完整的pom.xml文件如下:
pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.springframework</groupId> <artifactId>gs-maven</artifactId> <packaging>jar</packaging> <version>0.1.0</version> <!-- tag::joda[] --> <dependencies> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.2</version> </dependency> </dependencies> <!-- end::joda[] --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>hello.HelloWorld</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build></project>
注意:The completed pom.xml file is using the Maven Shade Plugin for the simple
convenience of making the JAR file executable. The focus of this guide is getting
started with Maven, not using this particular plugin.
8、总结-Summary
恭喜你!你已经为Java工程创建了一个简单而有效的Maven工程定义。
原文链接:https://spring.io/guides/gs/maven/
- 【spring】Building Java Projects with Maven
- 【Spring】Building Java Projects with Gradle
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- Spring Boot 项目构建 之 使用 Gradle 构建 Java 项目(Building Java Projects with Gradle)
- 用Gradle构建java工程 (Building Java Projects with Gradle)
- Building Parsers With Java
- Building Web Applications with Maven 2
- Building For Different Environments with Maven
- Practical Ajax Projects with Java Technology
- Building a RESTful api with Spring note1
- Building a RESTful api with Spring note2
- Spring with Maven
- Apache Spark - Building Spark with Maven(使用Maven构建Spark)
- Building Java Enterprise Systems with J2EE
- Automation for the people: Build Java projects with Raven
- Build Antlr4 projects with eclipse java project template.
- Maven Projects Setup
- JAVA获取中文名字的首字母
- java设计模式
- mysql 创建定时器
- QUML建模第一层:角色-业务图实现愿景(2)
- AudioEffect源码解析
- 【spring】Building Java Projects with Maven
- mysql日期和字符相互转换
- example site
- 深入理解linux网络技术之驱动层
- spring过滤器配置
- QUML建模第一层:角色-业务图实现愿景(3)
- 【IOS】保存用户唯一ID
- 计时器,锁屏广播事件,widget小控件,
- zookeeper遍历和设置acl