升级Spring Boot 3.1.6后应用启动失败,如何解决兼容问题?
应用启动失败问题
问题描述
将Spring Boot升级至3.1.6后,应用启动失败,提示项目配置不符合要求,具体原因:
- Spring Boot [3.1.6] 与当前Spring Cloud发布版本不兼容
- Spring Cloud Sleuth 与当前Spring Cloud发布版本不兼容
解决步骤
1. 匹配Spring Boot与Spring Cloud的兼容版本
Spring Cloud和Spring Boot有严格的版本对应关系,Spring Boot 3.1.x对应的Spring Cloud版本是2022.0.4(代号Kilburn SR4),你需要在项目依赖管理中指定该版本:
- Maven(修改
pom.xml):<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>2022.0.4</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> - Gradle(修改
build.gradle):dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:2022.0.4" } }
2. 替换Spring Cloud Sleuth为Micrometer Tracing
Spring Cloud Sleuth已停止维护,从Spring Cloud 2022.0.x版本开始,官方推荐使用Micrometer Tracing替代:
- 移除项目中所有Spring Cloud Sleuth依赖,例如:
<!-- 移除该依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> - 添加Micrometer Tracing相关依赖:
Maven:
Gradle:<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-tracing-bridge-brave</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>implementation 'io.micrometer:micrometer-tracing-bridge-brave' implementation 'org.springframework.boot:spring-boot-starter-actuator'
3. 验证依赖并重新构建
修改依赖后执行以下命令刷新依赖并重新构建:
- Maven:
mvn clean install -U - Gradle:
./gradlew clean build --refresh-dependencies
完成后重新启动应用,检查启动状态。
内容的提问来源于stack exchange,提问作者Vega Hassan
相关产品推荐
相关产品推荐

