启动Spring Boot应用报错:无法访问SpringApplication类版本不兼容
解决思路
1. 排查依赖传递链
- 执行
gradle dependencies命令输出完整依赖树,定位哪个依赖间接引入了Spring Boot 3.0.1。重点排查spring-boot-starter系列依赖或第三方库是否强制指定了高版本Spring Boot。 - 找到问题依赖后,通过
exclude排除Spring Boot 3.x模块,或是在dependencyManagement中统一锁定版本:
// 排除单个依赖中的高版本Spring Boot implementation('问题依赖坐标') { exclude group: 'org.springframework.boot', module: 'spring-boot' } // 统一锁定Spring Boot版本 dependencyManagement { imports { mavenBom "org.springframework.boot:spring-boot-dependencies:2.7.6" } }
2. 校验Spring Boot插件配置
- 确保
build.gradle中插件版本与依赖版本匹配,避免插件自动拉取不兼容的依赖版本:
plugins { id 'org.springframework.boot' version '2.7.6' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'java' }
io.spring.dependency-management插件会自动管理Spring Boot依赖版本,2.7.6版本推荐搭配1.0.15.RELEASE的管理插件。
3. 清理缓存与构建产物
- 执行
gradle clean删除项目build目录下的构建产物。 - 手动删除本地仓库中Spring Boot 3.0.1的对应目录(即报错路径
/repository/org/springframework/boot/spring-boot/3.0.1/),重新执行gradle build让Gradle拉取正确版本依赖。
4. 检查全局与子模块配置
- 查看项目根目录的
gradle.properties文件,确认是否存在springBootVersion等配置项被误设为3.0.1。 - 如果是多模块项目,检查子模块的
build.gradle是否单独指定了高版本Spring Boot,导致父模块依赖被覆盖。
5. 明确Java版本配置
- 在
build.gradle中显式指定Java 11,避免插件根据环境自动适配高版本Java并拉取对应Spring Boot版本:
java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 }
内容的提问来源于stack exchange,提问作者ljs
相关产品推荐
相关产品推荐

