Maven的聚合特性能够把项目的各个模块聚合在一起构建;
而Maven的继承特性则能帮组抽取各模块相同的依赖和插件等配置,在简化POM的同时,还能促进各个模块配置的一致性。
聚合:新建一个项目demo 。 把A、B、C 三个项目都聚合到demo中
pom.xml配置
<groupId>com.hongxing</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging><!--此处的jar改为pom-->
<name>demo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<modules>
<module>../A</module> <!-- 把模块A集成进来-->
<module>../B</module> <!-- 把模块B集成进来-->
<module>../C</module> <!-- 把模块C集成进来-->
</modules>
然后执行 clean package 命令。控制台会输出A、B、C三个项目的编译信息,demo最终编译成功。
继承:新建一个maven项目
<groupId>com.hong</groupId>
<artifactId>jc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging> <!-- 把jar变成pom -->
<name>jc</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>3.8.1</junit.version> <!-- 变量 -->
</properties>
<dependencyManagement> <!-- 有 dependencyManagement 说明是父项目-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version> <!-- 应用变量 -->
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
在要依赖此项目的项目中写:
<parent> <!--继承父项目-->
<groupId>com.hong</groupId>
<artifactId>jc</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
并删除version、scope标签