简介
在项目中使用Maven可以大大简化开发及构建的过程,但一旦产品线庞大,包含的项目及模块繁多时,各模块间版本管理就会产生不一致现象,从而给维护及开发带来了不少难题。Maven的聚合特性可以帮助我们把项目的多个模块聚合在一起,使用一条命令完成构建;
多项目聚合的使用
1、 编写父pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>4.0.0comtest-parentpom1.0-SNAPSHOTtest-parent
注意:packaging必须为pom类型
2、新建子项目
创建test2项目,笔者建议使用maven命令创建,在父POM文件所在目录,执行如下:
mvn archetype:generate -DgroupId=com.test2 -DartifactId=test2 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
创建test3项目,在父POM文件所在目录,执行如下:
mvn archetype:generate -DgroupId=com.test3 -DartifactId=test3 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
执行完后,父pom文件将自动在标签中添加子项目,如下:
<?xml version="1.0" encoding="UTF-8"?>4.0.0comtest-parentpom1.0-SNAPSHOTtest-parenttest2test3
笔者生成的目录如下:
Maven继承
在Maven中,子项目是可以继承父项目中的依赖的,比如说我们有一个父项目maven-parent,该父项目拥有一个子项目A,如果在父项目中依赖了junit,那么在子项目A中即便是没有引入junit,在子项目中仍然能够使用junit,因为子项目(隐式)天然继承了父项目中的junit依赖。常用的可被继承的POM元素如下:
groupId:项目组ID,项目坐标的核心元素version: 项目版本, 项目坐标的核心元素description: 项目的描述信息organization: 项目的组织信息url: 项目的URL地址developers: 项目开发者信息contributors: 项目的贡献者信息distributionManagement: 项目的部署配置properties: 自定义的maven属性dependencies: 项目的依赖配置dependencyManagement: 项目的依赖管理配置repositories: 项目的仓库配置build: 包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等