1、创建一个简单maven项目,如下图所示:
2、注意Packaging的类型为pom,如下图所示,点击完成
3、最后生成的项目结构,只有一个pom.xml,如下图所示:
4、pom.xml的内容如下:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.onyas.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
</project>
5、到此项目搭建完成,下面要做的就是修改pom.xm,把其它相关的模块聚合在一起,另外把其它模块中共同的部分提取出来,放在父pom.xml中,其它模块继承就可以了。
5.1、聚合:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.onyas.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!-- 导入三个模块,把这三个模块聚合在一起 -->
<modules>
<module>../user-core</module>
<module>../user-log</module>
<module>../user-services</module>
</modules>
</project>
5.2继承:
父pom.xml如下所示:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.onyas.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!-- 导入三个模块,把这三个模块聚合在一起 -->
<modules>
<module>../user-core</module>
<module>../user-log</module>
<module>../user-services</module>
</modules>
<!-- 以下为提取的公共部分,其它模块的pom.xml继承就可以 -->
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
子模块的pom.xml如下所示:
<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>
<parent>
<groupId>com.onyas.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
<artifactId>user-core</artifactId>
<packaging>jar</packaging>
<name>user-core</name>
</project>
6、完成配置,以后只要在user-parent的pom.xml中操作就可以了,比如run as -->maven build .. clean,clean package,clean install,等操作
区别
:
1.
对于聚合模块来说,它知道有哪些被聚合的模块,但那些被聚合的模块不知道这个聚合模块的存在。
2.
对于继承关系的父
POM
来说,它不知道有哪些子模块继承与它,但那些子模块都必须知道自己的父
POM
是什么。
共同点
:
1.
聚合
POM
与继承关系中的父
POM
的
packaging
都是
pom
2.
聚合模块与继承关系中的父模块除了
POM
之外都没有实际的内容
注:在现有的实际项目中一个 POM既是聚合POM,又是父 POM,这么做主要是为了方便