一個多模塊項目經過一個父POM 引用一個或多個子模塊來定義。父項目,經過如下配置,將子項目關聯。html
[xhtml] view plaincopyweb
<packaging>pom</packaging> app
<modules> eclipse
<module>simple-weather</module> webapp
<module>simple-webapp</module> maven
</modules> spa
其中值得注意的是<packaging>pom</packaging>這個父項目不像以前的項目那樣建立一個JAR 或者一個WAR,它僅僅是一個引用其它Maven 項目的POM。pom.xml 中下一部分列出了項目的子模塊。這些模塊在modules元素中定義,每一個modules 元素對應了一個simple-parent/目錄下的子目錄。Maven知道去這些子目錄尋找pom.xml 文件,而且,在構建的simp-parent 的時候,它會將這些子模塊包含到要構建的項目中。.net
固然,僅僅在父項目,配置子項目是不可以真正實現關聯的,由於,這畢竟須要子項目的贊成,故!子項目中須要配置:orm
[xhtml] view plaincopyxml
<parent>
<groupId>org.sonatype.mavenbook.ch06</groupId>
<artifactId>simple-parent</artifactId>
<version>1.0</version>
</parent>
如今,經過父pom.xml將2個子項目進行了關聯,那麼咱們須要從simple-parent 項目運行mvn clean install 命令,將2個子項目打包,編譯爲一個項目!
當Maven 執行一個帶有子模塊的項目的時候,Maven 首先載入父POM,而後定位全部的子模塊POM。Maven 而後將全部這些項目的POM 放入到一個稱爲Maven 反應堆(Reactor)的東西中,由它負責分析模塊之間的依賴關係。這個反應堆處理組件的排序,以確保相互獨立的模塊能以適當的順序被編譯和安裝。
當,經過父pom.xml進行完成多個子項目的關聯後,咱們能夠像前幾章同樣,分別進入某個單獨的模塊,進行運行,以移動程序!
注意:子項目的文件,位於父項目pom.xml同級,也就是,子項目的pom.xml位於父pom.xml的下一級文件中!