使用archetype插件生成项目骨架
学习工具最好的方法就是去使用它。在这里maven提供了一个插件来快速生成一个基本的项目骨架,在命令行中输入
mvn archetype:generate -DgroupId=com.maven -DartifactId=hello-world
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这里-DpropertyName = propertyValue 类似键值对的形式,是向archetype插件的generate任务配置参数,groupId 指定了项目的所在公司及项目组的名称,写法和包名类似,artifactId指定了本项目所在模块的名称,archetypeArtifactId则指定了项目骨架的类型,interactiveMode则指定了是否以交互模式创建项目,所谓交互模式即为在创建时提示你输入groupId,artifactId,archetypeArtifactId等必要参数。此处还有一项重要参数未写出,PackageName,它指定了项目中自动生成的包的名称,若不指定将默认使用groupId的值。命令行在提示一系列构建的信息后,在当前目录下就会新建一个名为hello-world的Maven项目。
hello-world基本目录结构
-hello-world
-src
-main
-java
-test
-java
-target
-pom.xml
Maven Archtype插件创建了一个与artifactId匹配的目录——hello-world。这是项目的基础目录。
每个项目在根目录下面的pom.xml里维护了它的项目对象模型 (POM)。这个文件描述了这个项目,配置了插件,声明了依赖。
项目的源码和资源文件存放在src/main目录下面。在一个Java项目中,Java类放在src/main/java下面,而classpath资源文件放在src/main/resources下面。
我们项目的测试用例放在src/test下。在这个目录下面,src/test/java存放像使用JUnit或者TestNG这样的Java测试类。目录src/test/resources下存放测试classpath资源文件。
target目录存放项目的编译输出,如class文件。
项目自动创建的示例代码
在项目根目录下能够找到pom.xml文件,定义了项目的基本信息和依赖,如下
<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>com.maven</groupId>
<artifactId>hello-world</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>hello-world</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
在pom文件中,groupId、artifactId、packaging、version定义了项目的基本信息,dependency元素定义了项目的依赖,可以注意到依赖的基本信息与项目的基本信息格式相同,也就是说只要我们定义了项目的基本信息后,能够被其他项目在pom文件中引入。
在src/main/java下面存放了项目的示例代码, 在com.maven包下面可以看到示例代码App.java
package com.maven;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
与此同时,在src/test/java下面存放了项目的测试代码,在com.maven包下面可以看到示例AppTest.java,此处省略。
以上代码均由Maven项目骨架QuickStart自带。
构建hello-world项目
在hello-world项目根目录下运行命令
mvn install
Maven会自动执行编译、测试、打包、安装等任务,实现了一键构建的功能。在命令行验证程序
java -cp target/hello-world-1.0-SNAPSHOT.jar com.maven.App
能够看到命令行输入经典的“Hello World!”
小结
本文讲述了如何快速新建一个Maven项目,介绍了基本的Maven目录结构和构建命令。