概念:maven聚合工程就是可以在父工程(maven)中创建多个组件(就是项目),这个组件之间可以相互依赖,实现组件复用。
创建Maven聚合工程:
1.创建夫工程(maven):
- 第一步:创建Maven file----new project
- 第二步:在创建完Maven的pom文件中将打包方式改为pom(创建的夫工程打包方式必须为pom)
<?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.qfedu</groupId> <artifactId>fmmall</artifactId> <packaging>pom</packaging> <version>2.0.1</version> <modules> <module>mapper</module> </modules> </project>
2.创建组件(子工程):
- 右键单击夫工程,new----module
- 注意:子工程也就是组件的pom会自动继承了夫工程
<?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"> <parent> <artifactId>fmmall</artifactId> <groupId>org.qfedu</groupId> <version>2.0.1</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.qfedu</groupId> <artifactId>mapper</artifactId> <packaging>jar</packaging> </project>
如果创建的是spring boot应用,则与夫工程不会创建依赖关系,我们需要手动修改 pom文件。在夫工程添加spring boot依赖,再用spring boot的项目继承夫工程,使建立父子关系。
夫工程pom:
<?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>
<!-- lookup parent from repository -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.7</version>
<relativePath/>
</parent>
<groupId>org.qfedu</groupId>
<artifactId>fmmall</artifactId>
<packaging>pom</packaging>
<version>2.0.1</version>
<modules>
<module>common</module>
<module>service</module>
<module>mapper</module>
<module>beans</module>
<module>api</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
<optional>true</optional>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>子工程pom:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>fmmall</artifactId>
<groupId>org.qfedu</groupId>
<version>2.0.1</version>
</parent>
<artifactId>api</artifactId>
</project>
Maven工程的依赖关系:
夫工程的依赖此工程下的子工程都可以应用,并且子工程可以单独添加依赖,单独添加的依赖其他工程不受影响。如果公共依赖可以在夫工程中添加,单独子工程所需依赖在子工程中添加,因为如果在夫工程中添加依赖,其他子工程也会添加,会造成不必要的麻烦。
版权声明:本文为weixin_62779762原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。