SpringBoot项目多模块项目中父类与子类pom.xml的关联问题小结
目录
- 1:父类 POM 的配置
- 2:子类 POM 的配置
- 3:父子 POM 的连接方式
- 3.1 父 POM 声明子模块
- 3.2 子 POM 指定父 POM
- 3.3 依赖继承
- 4:父子 POM 的工作机制
- 5:注意事项
- 总结
1:父类 POM 的配置
- 父 POM 通过
<modules>
声明子模块,并通过<dependencyManagement>
管理依赖版本。 - 子 POM 通过
<parent>
指定父 POM,继承父 POM 的配置。 - 父子 POM 的连接方式是多模块项目的基础,能够有效管理依赖和配置,提高项目的可维护性。
- 父类 POM 是一个聚合工程(
packaging
为pom
),它通过<modules>
标签声明子模块,并通过<dependencyManagement>
管理依赖版本。
<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.example</groupId> <artifactId>parent-project</artifactId> <version>1.0.0</version> <packaging>pom</packaging> <!-- 父项目必须是 pom 类型 --> <!-- 子模块声明 --> <modules> <module>module1</module> <module>module2</module> </modules> <!-- 依赖管理 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.6.13</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-Java</artifactId> <version>8.0.24</version> </dependency> </dependencies> </dependencyManagement> <!-- 通用配置 --> <properties> <java.version>1.8</java.version> </properties> </project>
2:子类 POM 的配置
子类 POM 通过 <parent>
标签指定父 POM 的坐标(groupId
、artifactId
、version
),并继承父 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> <!-- 指定父 POM --> <parent> <groupId>com.example</groupId> <artifactId>parent-project</artifactId> <version>1.0.0</version> <relativePath>../pom.xml</relativePath> <!-- 父 POM 的相对路径 --> </parent> <!-- 子模块基本信息 --&gjavascriptt; <artifactId>module1</artifactId> <!-- 子模块的依赖 --> <dependencies> <dependency&phpgt; <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 编程客栈 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> </project>
3:父子 POM 的连接方式
3.1 父 POM 声明子模块
在父 POM 中,使用 <modules>
标签声明子模块:
<modules> <module>module1</module> <module>module2</module> </modules>
3.2 子 POM 指定父 POM
在子 POM 中,使用 <parent>
标签指定父 POM 的坐标:
<parent> <groupId>com.example</groupId> <artifactId>parent-project</artifactId> <version>1.0.0</version> <relativePath>../pom.xml</relativePath> <!-- 父 POM 的相对路径 --> </parent>
3.3 依赖继承
子模块可以继承父 POM 中 <dependencyManagement>
管理的依赖,无需指定版本号:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
4:父子 POM 的工作机制
- 依赖管理:父 POM 通过
<dependencyManagement>
管理依赖版本,子模块继承这些依赖。 - 配置继承:父 POM 中的
<properties>
、<build>
等配置会被子模块继承。 - 模块聚合:父 POM 通过
<modules>
聚合子模块,构建时会按照顺序构建所有子模块。
5:注意事项
1:父 POM 的 packaging
必须为 pom
<packaging>pom</packaging>
2:子模块的 &编程lt;parent>
必须正确指定父 POM 的坐标
<parent> <groupId>com.example</groupId> <artifactId>parent-project</artifactId> <version>1.0.0</version> <relativePath>../pom.xml</relativePath> </parent>
3:子模块的 <artifactId>
必须唯一:
每个子模块的 artifactId
不能重复。
4:依赖版本管理:
子模块继承父 POM 的依赖版本,如果需要覆盖版本,可以在子模块中显式指定。
总结
父 POM 通过 <mod编程客栈ules>
声明子模块,并通过 <dependencyManagement>
管理依赖版本。
子 POM 通过 <parent>
指定父 POM,继承父 POM 的配置。
父子 POM 的连接方式是多模块项目的基础,能够有效管理依赖和配置,提高项目的可维护性。
到此这篇关于SpringBoot项目多模块项目中父类与子类pom.xml的关联详解的文章就介绍到这了,更多相关SpringBoot父类与子类pom.xml的关联内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论