父POM的作用是消除配置的重復。
父POM必須<packaging>pom</packaging>
。
還有
<modules>
<module>子模塊1</module>
<module>子模塊2</module>
<modules>
來指定這些子模塊可以一起構建。
一起構建是指,構建父模塊的同時把子模塊也構建了。
子POM通過
<parent>
<groupId>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../account-parent/pom.xml</relativePath>
</parent>
找到父POM文件,來繼承父POM文件的屬性。
// 重要屬性
properties:自定義的Maven屬性
dependencies:項目的依賴配置
dependencyManagement:項目的依賴管理配置
repositories:項目的倉庫配置
build:包括項目的源碼目錄配置、輸出目錄配置、插件配置、插件管理配置等
// 次重要屬性
roupId:項目組ID,項目坐標的核心元素
version:項目版本,項目坐標的核心因素
description:項目的描述信息
organization:項目的組織信息
inceptionYear:項目的創始年份
url:項目的URL地址
developers:項目的開發者信息
contributors:項目的貢獻者信息
distributionManagement:項目的部署配置
issueManagement:項目的缺陷跟蹤系統信息
ciManagement:項目的持續集成系統信息
scm:項目的版本控制信息
malilingLists:項目的郵件列表信息
reporting:包括項目的報告輸出目錄配置、報告插件配置等
其中,子POM無條件繼承父POM的dependencies元素。
子POM的dependencies元素可以有選擇的繼承父POM的dependencyManagement元素。
類似,子POM無條件繼承父POM的plugins元素。
子POM的plugins元素可以有選擇的繼承父POM的pluginManagement元素。