<parent>标签用于声明Maven项目继承的父项目,实现依赖版本统一管理、构建配置共享、属性标准化及多模块工程一致性,须包含groupId、artifactId、version三项。

<parent> 标签在 pom.xml 中用于声明当前 Maven 项目继承自哪个父项目,核心作用是**复用和统一管理依赖、插件、属性、构建配置等共性内容**。
统一依赖版本管理
父 POM 中定义的 <dependencyManagement> 可集中声明依赖的版本和范围,子模块只需写 groupId 和 artifactId,无需指定 version,避免版本不一致问题。
- 父 POM 中写:<version>2.7.12</version>
- 子模块中写:<artifactId>spring-boot-starter-web</artifactId>(不写 version)
- Maven 自动按父定义的版本解析
共享构建配置与默认行为
父 POM 可预设编译源码版本、编码格式、插件配置(如 maven-compiler-plugin、maven-surefire-plugin)、资源过滤规则等,子项目自动继承,减少重复配置。
- 比如统一设 <source>17</source> 和 <target>17</target>
- 子模块不用再配 JDK 版本,也不会因遗漏导致编译失败
标准化项目结构与属性
通过 <properties> 定义公共变量(如 spring-boot.version、project.build.sourceEncoding),子模块可用 ${xxx} 引用,便于全局替换和维护。
- 改一次父 POM 的属性值,所有子模块同步生效
- 适合多模块工程(如 common、service、api)统一技术栈
必须包含的关键子元素
一个有效的 <parent> 至少要包含三项:
- <groupId>:父项目的组织 ID
- <artifactId>:父项目的构件 ID
- <version>:父项目的版本号
- 可选:<relativePath>(默认 ../pom.xml,指向上级目录的父 POM;若父 POM 已发布到仓库,可省略)
基本上就这些。它不是“继承代码”,而是继承配置——让多模块项目更干净、可控、不易出错。










