blog已經轉移至github,大家請訪問 http://qaseven.github.io/
*聚合(多模塊)
在一個項目中 往往有多個模塊組成 例如有項目demo 下面有a, b兩個模塊
為了能使用一條命令就能構建demo-a, demo-b兩個模塊, 需要創建一個額外的聚合模塊, 然后通過該模塊構建整個項目的所有模塊。
聚合模塊(demo-parent) pom:
模塊a(demo-a) pom:
模塊b(demo-b) pom:
額外模塊(demo-parent) pom中的modules節點有多個module,每個module的值都是一個被聚合模塊的相對目錄。
關于聚合模塊目錄與其他模塊的目錄主要有兩種形式:
a.父子關系:
父子關系 聚合模塊的pom:
a.平行目錄:
平行目錄 聚合模塊的pom:
最后在聚合模塊(demo-parent)的pom上面 運行mvn命令 根據聚合順序依次構建多個模塊。
*繼承
上面的例子中, a,b兩個模塊都依賴junit, 為了消除重復,可以使用pom的繼承,以達到一處聲明,多處使用的目的。
parent元素聲明父模塊,parent下的子節點groupId,artifactId,version指定父模塊的坐標,這三個元素是必須的。
節點relativePath指定父模塊pom的路徑,默認值是:../pom.xml,也就是說父pom在上一層目錄,(<relativePath>../demo-parent/pom.xml</relativePath> 表示父模塊pom和子模塊是平行目錄)
可以被繼承的POM元素:
groupId:項目id,項目坐標的核心元素
version:項目版本,項目坐標的核心元素
description:項目描述信息
organization:項目組織信息
inceptionYear:項目創世年月
developers:項目開發者信息
contributors:項目貢獻者信息
distributionManagement:項目部署配置
scm:項目的版本控制信息
mailingLists:項目郵件列表信息
properties:自定義的屬性
dependencies:項目的依賴配置
dependencyManagement:項目的依賴管理配置
repositories:項目的倉庫配置
build:項目源碼目錄配置。輸出目錄配置,插件配置等。
*依賴管理
父模塊(demo-parent) pom:
父POM 中使用dependencyManagement 聲明的依賴不會給子模塊引入依賴, 只會繼承這段配置。
在模塊a(demo-a) pom中聲明了父pom中junit依賴 在執行的時候才會獲得真正的依賴信息。
模塊b(demo-b) pom中沒有聲明父pom中junit依賴 不會產生實際效果。
posted on 2014-04-01 15:20 順其自然EVO 閱讀(591) 評論(0) 編輯 收藏 所屬分類: 持續集成 、maven
Powered by: BlogJava Copyright © 順其自然EVO