Maven的建立、標籤以及目錄結構
1、建立第一個Maven專案
我們將會率先的建立您的第一個Maven專案!為了建立我們的第一個Maven專案,我們將使用Maven的原型機制。原型被定義為一種原始的模式或模型,從這種模式或模型中,所有其他的東西都被製造出來。在Maven中,原型是一個專案的模板,它與一些使用者輸入相結合,生成一個已經根據使用者需求定製的工作Maven專案。我們將向你們展示原型機制是如何運作的,但是如果你們想了解更多關於原型的知識請參考我們對原型的介紹
建立您的第一個專案!為了建立最簡單的Maven專案,從命令列執行以下命令:
mvn -B archetype:generate -DarchetypeGroupId=org.apache .maven.archetypes -DgroupId=com.mycompany.app -DartifactId=my-app
一旦您執行了這個命令,您就會注意到發生了一些事情。首先,您將注意到,為新專案建立了一個名為my-app的目錄,這個目錄包含一個名為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/xsd/maven-4.0.0.xsd" >
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url >
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
pom.xml包含這個專案的專案物件模型(POM)。POM是Maven的基本工作單元。這一點很重要,因為Maven本身就是以專案為中心的,一切都圍繞專案的概念進行。簡而言之,POM包含了您的專案的每一個重要資訊,並且本質上是一種一站式的搜尋,可以找到與您的專案相關的任何東西。瞭解POM是很重要的,並且鼓勵新使用者參考POM的介紹。
2、Maven專案中的標籤及其含義
這是一個非常簡單的POM,但是仍然顯示每個POM所包含的關鍵元素,所以讓我們遍歷它們,讓您熟悉POM要點:
標籤名稱 | 標籤含義 |
---|---|
project | 這是所有Maven pom.xml檔案中的頂級元素。 |
modelVersion | 這個元素表示POM使用的物件模型的版本。模型本身的版本變化很少,但它是強制性的,以確保在Maven開發人員認為有必要更改模型時使用的穩定性。 |
groupId | 這個元素表示建立專案的組織或組的唯一識別符號。groupId是專案的關鍵識別符號之一,它通常基於組織的完全限定域名。例如org.apache.maven.plugins是所有Maven外掛的指定的groupId。 |
artifactId | 此元素表示由該專案生成的主要工件的唯一基本名稱。專案的主要工件通常是JAR檔案。像源包這樣的次要工件也使用artifactId作為其最終名稱的一部分。一個由Maven產生的典型工件將具有這個形式-.(例如,myapp-1.0.jar)。 |
packaging | 這個元素表示這個工件所使用的包型別(例如JAR、WAR、EAR等)。這不僅意味著生成的工件是JAR、WAR或EAR,還可以指示作為構建過程的一部分使用的特定生命週期。(生命週期是我們將在指南中進一步討論的主題。現在,請記住,專案的指示打包可以在定製構建生命週期中發揮一定的作用。)packaging元素的預設值是JAR,所以您不必為大多數專案指定這個值。 |
version | 此元素表示專案生成的工件的版本。Maven在幫助您進行版本管理方面有很長一段路要走,您經常會看到一個版本中的SNAPSHOT設計版本,這表明一個專案處於開發狀態。我們將討論快照的使用以及它們如何在本指南中進一步工作。 |
name | 這個元素表示專案使用的顯示名稱。這通常在Maven生成的文件中使用。 |
url | 這個元素指示專案的站點在哪裡可以找到。這通常在Maven生成的文件中使用。 |
description | 這個元素提供了您的專案的基本描述。這通常在Maven生成的文件中使用。 |
3、Maven的目錄結構
關於在POM中使用哪些元素的完整參考資料,由於篇幅比較長,內容比較多,所以說我就不寫下來了,直接上鍊接,如下:
現在讓我們回到手頭的專案,在您的第一個專案的原型生成之後,您還會注意到以下目錄結構已經建立:
my-app
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java
正如您所看到的,從原型建立的專案有一個POM,一個用於您的應用程式原始碼的源樹,以及一個用於測試源的源樹。這是Maven專案的標準佈局(應用程式源位於${basedir}/src/main/java
中,測試源位於${basedir}/src/test/java
中,${basedir}
表示包含pom.xml
的目錄)。