上一节中,我们已经安装好JDK及Maven了,现在,我们开始创建一个简单的HelloWorld项目。
Maven的核心是pom.xml,所谓的POM,指的是Project Object Model,即:项目对象模型。现在我们创建pom.xml。
第一,我们创建一个名为HelloWorld的文件夹,并在该文件夹中,新建一个名为pom.xml的文件,输入内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.learning.mvn</groupId>
<artifactId>mvn-helloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven for hello world</name>
</project>
根节点下第一个元素modelVersion指定了当前POM模型的版本,在Maven2及Maven3中,只能为4.0.0。
此外,pom.xml还包含了groupId、artifactId和version,这三个元素定义了一个项目的基本坐标,在Maven中,任何jar、pom、war及plugin都是基于这些基本坐标区分的。groupId定义了项目属于哪个组,artifactId定义了当前模块在项目中的唯一ID,version是项目的版本号。
在没有写任何Java代码的情况下,我们仍可以直接在命令行运行mvn clean compile,并且不会出现任何问题。
第二,我们编写Java主代码。项目主代码都是位于根目录下的src/main/java目录。按照约定,我们创建此目录。然后我们在此目录下,再创建包及相应的Java类文件,com/learning/mvn/helloworld/HelloWorld.java。其内容下:
package com.learning.mvn.helloworld;
public class HelloWorld {
public String sayHello() {
return "hello";
}
public static void main(String[] args) {
System.out.println(new HelloWorld().sayHello());
}
}
我们在根路径下运行命令mvn clean compile,发现没有出现问题。
第三,我们编写测试代码,主代码和测试代码是放置在不同的目录下的。主代码是放在src/main/java下,而测试代码是放在src/test/java下。所以我们先创建测试目录,然后创建相应的包及测试Java类文件。这儿的测试,是需要jUnit的支持的,所以先在pom.xml中加入junit的依赖,然后写测试代码。依次示例如下:
<?xml version="1.0" encoding="UTF-8" ?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.learning.mvn</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven for hello world</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
package com.learning.mvn.helloworld;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class HelloWorldTest {
@Test
public void testSayHello() {
HelloWorld hw = new HelloWorld();
String result = hw.sayHello();
assertEquals("hello", result);
}
}
我们在根目录运行命令mvn clean test,发现也没有什么问题。
第四,我们对该项目进行打包(package)。我们知道,如果pom.xml中没有加package标签,默认是jar。所以这儿,我们直接在根目录下运行命令mvn clean package,发现在target下生成了一个符合指定格式(artifactId-version.jar)的jar文件。
至此,基本的Maven进行清理(clean)、编译(compile)、测试(test)和打包(package)已经完成。