如何使用dependencyManagement统一版本
必须用dependencyManagement统一多模块Maven项目依赖版本,父模块在中声明groupId、artifactId和version,子模块继承父模块且dependencies中省略version,再通过effective-pom和dependency:tree验证版本是否生效。

在多模块Maven项目中,子模块各自声明相同依赖却写了不同版本号,导致构建时出现ClassNotFoundException或运行时方法找不到——这说明依赖版本没统一,必须用
父模块中定义 dependencyManagement 块
打开父模块的 pom.xml,在 根标签内、 外层添加 块。
把所有需要统一版本的依赖,连同 、、 一起写进 里。
【必须放在 pom,不该含实际代码或 jar 包。
如果使用 Spring Boot,推荐用 导入官方 BOM:
→ 和 必须成对出现,且只能出现在 中。
子模块继承父模块并省略 version
确保子模块的 pom.xml 中有正确的 声明,指向你刚配置好的父模块。
在子模块自己的 块中,添加所需依赖时,只写 和 ,绝对不要写
例如父模块已声明 org.springframework.boot:spring-boot-starter-web:3.3.5,子模块只需:
这一步操作起来很简单,但一旦漏删 ,Maven 就会优先采用子模块写的版本, 彻底失效。
验证版本是否真正生效
第一步:在项目根目录执行 mvn help:effective-pom,输出最终合并后的 POM 内容。
第二步:用 Ctrl+F 搜索目标依赖的 groupId 和 artifactId,确认其 version 值来自父模块的 ,而非子模块自身声明。
第三步:运行 mvn dependency:tree -Dverbose,观察该依赖实际解析出的版本号是否与父模块定义一致。若显示多个版本并存,说明某处子模块偷偷写了 或引入了冲突传递依赖。
注意:如果子模块依赖项未出现在 effective-pom 的 区域,说明它根本没被引入—— 只管版本,不管引入, 才决定是否拉包。