Maven(四)——POM繼承與多模組構建
阿新 • • 發佈:2019-01-31
約定(慣例)優先於配置
- 標準的目錄結構
- *.java放到src/main/java目錄下
- *.class在target目錄下
- 配置及靜態檔案
- 這樣做的好處就是:我們只需要把對應的原始碼、檔案放到正確的目錄下,然後maven會自動幫我們找到,做其他所有的事情。
- 專案描述符,pom.xml。
POM,專案物件模型
- xml檔案,pom.xml
- project 等價於 artifact
- 專案型別(packaging)
- pom,jar,war
- 座標(groupId artifactId version)
- 屬性,${propery}
- 依賴(dependency標籤)
- 構建配置(build標籤,plugin標籤)
- 多專案(parent標籤,modules標籤)、繼承
- 專案總體資訊(名稱、作者、開源協議)
配置pom遇到的問題
在實際開發中,一個現實的專案一般都是把一個專案拆分成多個子專案,這樣做的好處是把一個大專案模組化,每個模組可以分開進行開發。但是在一個由多個子專案構成的大專案,在maven的配置過程中,往往會遇到一些問題。
- 多個子專案配置重複
- 修改繁瑣
- 依賴版本不一致
- 配置管理混亂
這時,可以使用pom的繼承,把公共的部分嘗試提到父節點去,子節點從父節點繼承。
pom的繼承
- 可以類比JAVA中的繼承
- 繼承或者覆蓋,Override
- 可繼承項
- 座標屬性,如groupId
- 依賴配置
- 外掛配置
- 一般性資訊,如開發者資訊
Super POM
- 所有Maven專案的POM都繼承Super POM
- 是Maven的組成部分
- 超級POM定義了一組被所有專案共享的預設設定
- 預設的檔案位置
- 統一的外掛配置
- 預設的中央倉庫配置
- 其他的一些設定
- mvn help:effective-pom , 就是eclipse中 Effective POM 可以看到一個POM繼承了Super POM中所有的配置項後最後的POM的樣子。
- 使用parent元素,可以顯示配置父POM。
多專案構建
- parent專案,專案型別是pom。
- 定義modules。
- 子模組中配置parent,繼承。
- 統一配置提到parent專案中。
- 既使用繼承又使用組合 。