標籤:maven maven彙總 maven繼承 maven繼承詳解
Maven之——彙總與繼承1、 彙總
所謂彙總就是用一個pom.xml設定檔將一個或者多重專案關聯起來、這樣當我們執行彙總檔案pom.xml的生命週期階段的時候、他就會執行在彙總檔案中指定彙總的所有項目的對應生命週期階段。
包含彙總檔案的是一個額外的模組、這個模組必須要有自己的POM檔案、並切此彙總項目的POM的packaging必須是pom:
<modelVersion>4.0.0</modelVersion> <groupId>org.andy.items</groupId> <artifactId>scattered-items</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>items-thkinjava</module> </modules>
Scattered-items是一個彙總模組、包含具體的items-thkinjava項目。要注意的是:這裡items-thkinjava是在scattered-items檔案夾內的、如果items-thkinjava與scattered-items同級、則要寫成:
<modelVersion>4.0.0</modelVersion> <groupId>org.andy.items</groupId> <artifactId>scattered-items</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>../items-thkinjava</module> </modules>
2、 繼承
加入一個項目有多個模組、每個模組都有自己的依賴、並且模組之間的依賴有大量的重複、這樣誰用誰的不但重複、還複雜、不利於後面的管理、也容易產生衝突。此時就可以抽象一個父類結構pom指定公用部分、以便統一管理。父 POM的配置一般放在項目根目錄、或者建立一個額外的項目、包含多重專案、父pom的配置要注意的地方和繼承一樣、pom.xml中packaging類型也是pom。比如上面提到的scattered-items項目就是一個我用來存放所有平時練習的小項目的集合、每個小項目都是由maven構建的、每個小項目都有使用到單元測試、那麼我就可以在scattered-items中配置一個pom.xml作為父POM:
<groupId>org.andy.items</groupId> <artifactId>scattered-items</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version>
可以發現這個並沒有與繼承有什麼區別、就是少了一個<modules>標籤。關鍵是子POM中比如items-thkinjava的pom.xml要指定繼承的是哪個父POM:
<parent> <artifactId>scattered-items</artifactId> <groupId>org.andy.items</groupId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>items-thkinjava</artifactId>
最後一行是用來說明、當其繼承的有父POM的時候、如果groupId、version與父類一樣、就可以完全省略不寫、這樣他會預設的繼承使用父POM的groupId、version兩個屬性值。
3、 可繼承的POM元素
首先可以看一下maven的pom檔案所包含的所有子項目以及他們的意義:http://maven.apache.org/ref/3.2.3/maven-model/maven.html
具體如下、並附上簡單說明:
|
groupId |
項目組的id |
|
version |
項目版本 |
|
Decription |
項目的描述資訊 |
|
Organization |
項目的組織資訊 |
|
Inception Year |
項目的創始年份 |
|
url |
項目的url地址 |
|
Developers |
項目的開發人員資訊 |
|
Contributors |
項目的貢獻者資訊 |
|
distributionManagement |
項目的部署配置資訊 |
|
issueManagement |
項目的缺陷跟蹤資訊 |
|
ciManagement |
項目的持續整合系統資訊 |
|
Scm |
項目的版本控制系統資訊 |
|
mailingLists |
項目的郵件清單資訊 |
|
Properties |
自訂的maven屬性 |
|
Dependencies |
項目的依賴配置 |
|
dependencyManagement |
項目的依賴管理配置 |
|
Repositories |
項目的倉庫配置 |
|
Build |
包括項目的源碼目錄配置、輸出目錄配置、外掛程式配置、外掛程式管理配置等 |
|
reporting |
包括項目報告輸出目錄的配置、報告外掛程式配置等。 |
具體的想知道元素的配置方式以及表示的意義、可以查看上面給的網址。
Maven之——彙總與繼承