使用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目錄結構和構建命令。