maven的继承机制
子工程可以覆盖父工程的相同包的不同版本;那么子工程中默认使用子工程中pom文件中的配置
创建父工程
创建父工程和创建一般的 Java工程操作一致,唯一需要注意的是打包方式处要设置为pom。
在子工程中引用父工程
<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<relativePath>从当前目录到父项的pom.xml文件的相对路径文件的相对路径</relativePath>
</parent>
然后子项目自动拥有了父项目的依赖;
此时如果子工程的groupId和version和父工程重复则可以删除。
在父工程中管理依赖
将parent项目中的dependencies标签,用标签dependencyManagement标签括起来
<dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
</dependencyManagement>
在子项目中重新指定需要的依赖,删除范围和版本号;
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
可以被继承的元素:
groupId:项目组ID,项目坐标的核心元素
version:项目版本,项目坐标的核心元素
description:项目的描述信息
organization:项目的组织信息
inceptionYear:项目的创始年份
url:项目的url地址
developers:项目的开发者信息
contributors:项目的贡献者信息
distributionManagement:项目的部署配置信息
issueManagement:项目的缺陷跟踪系统信息
ciManagement:项目的持续集成系统信息
scm:项目的版本控制系统信息
mailingLists:项目的邮件列表信息
properties:自定义的maven属性配置信息
dependencyManagement:项目的依赖管理配置
repositories:项目的仓库配置
build:包括项目的源码目录配置、输出目录配置、插件管理配置等信息
reporting:包括项目的报告输出目录配置、报告插件配置等信息