Maven的聚合特性(aggregation)能够使项目的多个模块聚合在一起构建, 而继承特性(inheritance)能够帮助抽取各模块相同的依赖、插件等配置,在简化模块配置的同时, 保持各模块一致.
聚合
随着项目越来越复杂(需要解决的问题越来越多、功能越来越重), 我们更倾向于将一个项目划分几个模块并行开发,模块之间可能会存在相互依赖,比如A依赖与B,B依赖于C那么手动构建的时候需要先构建C,再构建B最后构建A,使用聚合后将A,B,C聚合在聚合模块中,构建时就不用考虑这些模块间的依赖关系,只需要构建聚合模块就行了。聚合模块aggregator中packaging需要配为pom ,该模块的内容仅是一个pom.xml,没有src/main/java、src/test/java等目录,是仅仅为了方便快速构建项目,并无实质内容。module中配的路径是聚合模块pom到被聚合模块pom的相对路径。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>aggregator</artifactId>
<packaging>pom</packaging>
<version>1.0.0.SNAPSHOT</version>
<modules>
<module>