1. 程式人生 > 其它 >Maven中GroupID 和ArtifactID詳解

Maven中GroupID 和ArtifactID詳解

解釋:

groupId :the unique identifier of the organization or group that created the project 
GroupID 是專案組織唯一的識別符號,實際對應JAVA的包的結構,是main目錄裡java的目錄結構。 
artifactId :unique base name of the primary artifact being generated by this project 
ArtifactID是專案的唯一的識別符號,實際對應專案的名稱,就是專案根目錄的名稱。

-----------------1 基礎知識必備----------------------------

<groupId>com.yucong.commonmaven</groupId>
<artifactId>commonmaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>common_maven</name>

groupId

定義了專案屬於哪個組,舉個例子,如果你的公司是mycom,有一個專案為myapp,那麼groupId就應該是com.mycom.myapp.

artifacted

定義了當前maven專案在組中唯一的ID,比如,myapp-util,myapp-domain,myapp-web等。

version

指定了myapp專案的當前版本,SNAPSHOT意為快照,說明該專案還處於開發中,是不穩定的版本。

name

聲明瞭一個對於使用者更為友好的專案名稱,不是必須的,推薦為每個pom宣告name,以方便資訊交流。



-----------------2 何為mave座標----------------------------

maven的世界中擁有數量非常巨大的構件,也就是平時用的一些jar,war等檔案。

maven定義了這樣一組規則:

世界上任何一個構件都可以使用Maven座標唯一標誌,maven座標的元素包括groupId, artifactId, version,package,classifier。

只要在pom.xml檔案中配置好dependancy的groupId,artifact,verison,classifier,

maven就會從倉庫中尋找相應的構件供我們使用。那麼,"maven是從哪裡下載構件的呢?"

答案很簡單,maven內建了一箇中央倉庫的地址(http://repol.maven.org/maven2),該中央倉庫包含了世界上大部分流行的開源專案構件,maven會在需要的時候去那裡下載。



-----------------3 座標詳解----------------------------

<groupId>org.sonatype.nexus</groupId>

<artifactId>nexus-indexer</artifactId>

<version>2.0.0</version>

<packaging>jar</packaging>

groupId

定義當前maven專案隸屬的實際專案。

groupId的表示方式與Java包名的表示方式類似,如: <groupId>org.sonatype.nexus</groupId>



artifactId

該元素定義實際專案中的一個Maven專案(模組),推薦的做法是使用實際專案的名稱作為artifactId的字首。

如:<artifactId>nexus-indexer</artifactId>

在預設情況下,maven生成的構件,其檔名會以artifactId作為開頭,如:nexus-indexer-2.0.0.jar。



packaging【可選的,預設為jar】:

當不定義packaging時,maven會使用預設值jar。



classifier:

該元素用來幫助定義構件輸出的一些附屬構件。



專案構件的檔名是座標相對應的,一般的規則為:artifact-version.packing