
本文介绍如何在 spring boot 2.6.6 升级至 spring boot 3.x 时,高效、准确地识别和替换项目中硬编码的 spring 生态依赖版本(如 spring-security、spring-jdbc 等),避免手动查证,推荐使用 maven 版本管理插件实现智能比对与升级。
本文介绍如何在 spring boot 2.6.6 升级至 spring boot 3.x 时,高效、准确地识别和替换项目中硬编码的 spring 生态依赖版本(如 spring-security、spring-jdbc 等),避免手动查证,推荐使用 maven 版本管理插件实现智能比对与升级。
将 Spring Boot 从 2.x(如 2.6.6)升级至 3.x 是一次重大版本跃迁,不仅涉及 Spring Framework 6 和 Jakarta EE 9+ 的迁移(如 javax.* → jakarta.* 包名变更),更关键的是整个依赖版本体系的重构。Spring Boot 3 不再通过 spring-boot-starter-parent 的
最可靠、可复现且工程化的解决方案是使用 Maven Versions Plugin —— 一个被广泛验证的依赖版本分析工具。
✅ 推荐操作流程
-
在 pom.xml 中声明插件(建议置于
下): <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.17.2</version> <!-- 使用最新稳定版 --> </plugin>
-
执行版本比对命令(确保已将 spring-boot-starter-parent 的
更新为 3.3.0 或目标版本): mvn versions:display-dependency-updates -Dincludes=org.springframework*,org.springframework.security*
该命令会扫描当前项目所有依赖,对比中央仓库中与 Spring Boot 3 兼容的最新可用版本,并高亮显示可升级项。例如输出可能包含:
[INFO] The following dependencies in Dependencies have newer versions: [INFO] org.springframework:spring-core ................ 6.1.8 -> 6.1.12 [INFO] org.springframework.security:spring-security-web ... 6.2.3 -> 6.3.1
-
批量更新(可选):确认无误后,可执行一键升级(谨慎用于生产前验证环境):
mvn versions:use-latest-versions -Dincludes=org.springframework*,org.springframework.security*
⚠️ 注意:此命令会直接修改 pom.xml,请务必提前提交 Git 快照或备份。
? 补充建议与注意事项
-
优先依赖 BOM,而非硬编码:Spring Boot 3 推荐完全移除
中对 Spring 生态组件的手动版本声明,改用 spring-boot-starter-* starter 自带的 BOM 约束。例如,删除 ,直接引入 spring-boot-starter-jdbc 即可获得与 Boot 3 兼容的正确版本。 - 验证 Jakarta EE 兼容性:确保所用第三方库(如 MyBatis、Hibernate、Lombok)已支持 Jakarta EE 9+;否则需升级至对应兼容版本(如 Hibernate 6.2+、MyBatis 3.5.14+)。
- 启用 --batch-mode 与 CI 集成:可在 CI 流水线中定期运行 mvn versions:display-dependency-updates -q(-q 静默模式),结合脚本自动预警过时依赖。
- 替代方案参考:若团队已采用 Gradle,推荐使用 Gradle Versions Plugin,功能与 Maven 插件对等。
升级不是终点,而是质量加固的起点。借助自动化版本分析工具,你不仅能精准落地 Spring Boot 3,更能建立可持续演进的依赖治理习惯。










