父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元素。