Maven(七)座標詳解

1.爲什麼要定義Maven座標
在我們開發Maven項目的時候,需要爲其定義適當的座標,這是Maven強制要求的。在這個基礎上,其他Maven項目才能應用該項目生成的構件。

2.Maven座標詳解

Maven座標爲各種構件引入了秩序,任何一個構件都必須明確定義自己的座標,而一組Maven座標是通過一些元素定義的,它們是groupId,artifactId,version,packaging,class-sifer。下面是一組座標定義:

<groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
 <version>0.0.1-SNAPSHOT</version>


下面講解一下各個座標元素:

groupId :定義當前Maven項目隸屬的實際項目。首先,Maven項目和實際項目不一定是一對一的關係。比如SpringFrameWork這一實際項目,其對應的Maven項目會有很多,如spring-core,spring-context等。這是由於Maven中模塊的概念,因此,一個實際項目往往會被劃分成很多模塊。其次,groupId不應該對應項目隸屬的組織或公司。原因很簡單,一個組織下會有很多實際項目,如果groupId只定義到組織級別,而後面我們會看到,artifactId只能定義Maven項目(模塊),那麼實際項目這個層次將難以定義。最後,groupId的表示方式與Java包名的表達方式類似,通常與域名反向一一對應。


artifactId: 該元素定義當前實際項目中的一個Maven項目(模塊),推薦的做法是使用實際項目名稱作爲artifactId的前綴。比如上例中的my-app。


version: 該元素定義Maven項目當前的版本


packaging:定義Maven項目打包的方式,首先,打包方式通常與所生成構件的文件擴展名對應,如上例中的packaging爲jar,最終的文件名爲my-app-0.0.1-SNAPSHOT.jar。也可以打包成war, ear等。當不定義packaging的時候,Maven 會使用默認值jar


classifier: 該元素用來幫助定義構建輸出的一些附件。附屬構件與主構件對應,如上例中的主構件爲my-app-0.0.1-SNAPSHOT.jar,該項目可能還會通過一些插件生成如my-app-0.0.1-SNAPSHOT-javadoc.jar,my-app-0.0.1-SNAPSHOT-sources.jar, 這樣附屬構件也就擁有了自己唯一的座標


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章