必须先升级jdk至17+、maven至3.8.5+并配置ide支持,否则项目无法编译;再引入spring-boot-properties-migrator辅助配置迁移,确保兼容spring boot 3.5。

Spring Boot 2.7升级到3.5必须先完成底层环境改造,否则项目连编译都通不过——JDK 17是硬性门槛,Maven版本过低会导致插件不兼容,IDE识别错乱还会掩盖真实错误。
升级JDK到17或更高版本
打开终端执行 java -version,确认当前输出不是17+。如果是Java 8或11,必须切换。
修改 pom.xml 中的 <properties></properties> 块:
将 <java.version>11</java.version> 或 <java.version>8</java.version> 改为 <java.version>17</java.version>;
同步更新 <maven.compiler.source></maven.compiler.source> 和 <maven.compiler.target></maven.compiler.target> 也为17。
这一步不可跳过。【JDK低于17时,Spring Boot 3.5启动直接抛UnsupportedClassVersionError】
若使用模块化(module-info.java),需额外添加 --add-opens java.base/java.lang=ALL-UNNAMED 等参数,否则反射调用会失败。
升级Maven到3.8.5以上
运行 mvn -v 查看当前版本。低于3.8.5的Maven无法正确解析Spring Boot 3.5的依赖树,尤其在处理jakarta命名空间时会出现坐标解析失败。
推荐直接升级到3.9.0+:它对JDK 17的模块系统支持更稳定,且能避免 maven-compiler-plugin 的 release 参数被忽略的问题。
更新后验证:执行 mvn help:effective-pom | grep "maven-compiler-plugin",确保插件版本不低于3.11.0。
配置IDE支持JDK 17和新构建流程
IntelliJ IDEA用户需确认:File → Project Structure → Project SDK 设置为JDK 17;Project language level 也设为17;
同时进入 Settings → Build → Compiler → Java Compiler,Target bytecode version 选17。
VS Code用户需安装最新版 Extension Pack for Java,并在 .vscode/settings.json 中显式指定:"java.configuration.updateBuildConfiguration": "interactive",否则Lombok、MapStruct等注解处理器可能失效。
这一步容易被忽略——即使命令行编译成功,IDE里仍会标红javax包引用,实际是IDE未刷新语义索引导致的假报错。
安装spring-boot-properties-migrator辅助迁移
在 pom.xml 的 <dependencies></dependencies> 中追加:
<dependency><br> <groupid>org.springframework.boot</groupid><br> <artifactid>spring-boot-properties-migrator</artifactid><br> <scope>runtime</scope><br></dependency>
该模块仅在应用启动时生效,会自动检测过时配置项(如 spring.sql.init.mode 替代 spring.datasource.initialization-mode),并在控制台打印映射建议。
它不修改文件,但能帮你快速定位application.yml里哪些key已废弃。
【必须设为 runtime scope,否则编译期引入会导致测试类路径污染】











