maven實戰(四)多模塊項目

simple-parent 項目

一個多模塊項目通過一個父POM引用一個或多個子模塊來定義。在simple-parent/ 目錄中你能找到一個父POM(也稱爲頂層POM)爲 simple-parent/pom.xml 。

<groupId>org.sonatype.mavenbook.ch06</groupId>
<artifactId>simple-parent</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>Chapter 6 Simple Parent Project</name>

<modules>
<module>simple-weather</module>
<module>simple-webapp</module>

1.packaging:pom

simple-parent定義了一組Maven座標: groupId 是 org.sonatype.mavenbook , artifactId 是 simple-parent , version 是 1.0 。這個父項目不像之前的項目那樣創建一個JAR或者一個WAR,它僅僅是一個引用其它Maven項目的POM。像 simple-parent 這樣僅僅提供項目對象模型的項目,正確的打包類型是 pom

2.modules

pom.xml 中下一部分列出了項目的子模塊。這些模塊在modules 元素中定義,每個 modules 元素對應了一個 simple-parent/ 目錄下的子目錄。Maven知道去這些子目錄尋找 pom.xml 文件,並且,在構建的simp-parent的時候,它會將這些子模塊包含到要構建的項目中。
####3.parent的pom定義全局配置
在parent項目的pom可以定義了一些將會被所有子模塊繼承的設置,子模塊會繼承使用這些設置,不需在各自pom中重複定義設置,例如所有子模塊都可能會用到的依賴Junit等,或者都需用到的編譯插件compiler。

子模塊項目

1.子項目繼承父項目:parent元素

<parent>
    <artifactId>simple-parent</artifactId>
    <groupId>com.hand.maven.zs</groupId>
    <version>1.0</version>
</parent>

通過parent元素Maven座標(groupId,version,artifactId)引用了一個父POM,在子模塊中我們就不再需要重新定義groupId和version,它們都從父項目繼承了。

2.子項目模塊:

子項目模塊,在parent元素中引用父項目的公用設置後,需定義自己的座標,即artifactId跟packaging是必須的,子項目中的dependences、build插件等設置除了繼承了父項目的設置是不需要明示應用的外,其他項目所必須的設置任然需按照maven項目的規範去設置依賴和引用必要的插件

3.子項目模塊間引用

當一個子項目需要應用另一個子項目時,以dependence設置被引用子項目座標來實現引用,且在parent的項目pom中定義module時,被引用模塊必須先被構建

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