Maven聚合
将多个Maven模块整合在一起称为聚合
Maven聚合的好处
可以将多个模块整体运行,不需要先将被依赖的模块打包至仓库再运行项目。
假如MavenA 依赖MavenB,如果只是在MavenA模块的pom.xml中dependency MavenB,则必须先将MavenB安装并打包至仓库。
如果使用聚合,则使用下面的标签元素
<modules>
<module>MavenA</module>
<module>MavenB</module>
</modules>
具体实现的代码如下
- 创建mavendemoservicet项目
菜单File-New-Project-Maven创建项目,
在pom.xml添加内容
<?xml version="1.0" encoding="UTF-8"?>
<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>org.learn.maven</groupId>
<artifactId>mavenservice</artifactId>
</project>
创建mavenweb模块,增加Service的依赖
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<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>org.learn.maven</groupId>
<artifactId>mavenweb</artifactId>
<!--依赖Service模块-->
<dependencies>
<dependency>
<groupId>org.learn.maven</groupId>
<artifactId>mavenservice</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
创建一个聚合工程,mavendemoparent
<?xml version="1.0" encoding="UTF-8"?>
<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>org.learn.maven</groupId>
<artifactId>mavendemo-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>mavendemochild</module>
<module>mavenservice</module>
<module>mavenweb</module>
</modules>
<packaging>pom</packaging>
<description>父工程</description>
<!--抽取子工程的依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
modules标签将我们需要聚合的模块增加到该标签内
<modules>
<module>mavendemochild</module>
<module>mavenservice</module>
<module>mavenweb</module>
</modules>
通过上面的配置,就实现了聚合工程,将mavendemochild,mavenservice,mavenweb三个子模块聚合了,假如我们的mavenservice项目中的代码需要依赖mavenservice中的代码。则可以直接import了。