可声明父POM供子POM继承
父模块POM如下:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.sjc.spring</groupId>
<artifactId>spring_1</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>spring_1 Maven Webapp</name>
</project>
子模块声明继承如下:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sjc.spring</groupId>
<artifactId>spring_1</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../spring_1/pom.xml</relativePath>
</parent>
<artifactId>spring_1_child</artifactId>
<name>spring_1_child</name>
</project>
在使用聚合编译时,同样需要把spring_1加入到聚合里面进行编译。
1、子模块没有声明groupId和version,这两个属性继承自父模块。但如果子模块有不同与父模块的groupId、version,也可指定
2、不应该继承artifactId,如果groupId,version,artifactId完全继承的话会造成坐标冲突;另外即使使用不同的groupId或version,同样的artifactId也容易产生混淆。
3、使用继承后parent也必须像自模块一样加入到聚合模块中。也就是在聚合模块的pom中加入<module>account-parent</module>maven中可继承的pom元素
groupId:项目组Id,项目坐标的核心元素
version:项目版本,项目坐标的核心元素
description:项目的表示信息
organization:项目的组织信息
inceptionYear:项目的创始年份
url:项目的url地址
develoers:项目的开发者信息
contributors:项目的贡献者信息
distributionManagerment:项目的部署信息
issueManagement:缺陷跟踪系统信息
ciManagement:项目的持续继承信息
scm:项目的版本控制信息
mailingListserv:项目的邮件列表信息
properties:自定义的maven属性
dependencies:项目的依赖配置
dependencyManagement:项目的依赖管理配置
repositories:项目的常客配置
build:包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等
reporting:包括项目的报告输出目录配置、报告插件配置等。