如何修正应用类路径适配唯一兼容版org.springframework.boot.builder.SpringApplicationBuilder
问题根因
你遇到的类路径冲突核心是Spring Boot与Spring Cloud版本不兼容:Dalston系列是Spring Cloud的极旧版本,仅适配Spring Boot 1.5.x版本,和你当前使用的Spring Boot 2.5.4存在大量类定义、方法签名的差异,依赖传递后就会出现同个类多个版本共存的冲突,触发SpringApplicationBuilder类版本不一致的报错。
解决方案
可根据你的项目需求任选其中一种即可:
方案1:升级Spring Cloud版本适配Spring Boot 2.5.4(更推荐)
Spring Boot 2.5.x对应的兼容Spring Cloud版本为2020.0.x(代号Ilford),调整步骤如下:
- 修改pom.xml的
spring-cloud.version属性值为2020.0.3 - 原
spring-cloud-starter-hystrix依赖已在高版本Spring Cloud中从原生依赖包移除,若需继续使用Hystrix,替换原有Hystrix依赖为以下内容:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> <version>2.2.10.RELEASE</version> </dependency>
- 配置修改完成后执行
mvn clean install -U命令强制更新依赖,清空本地缓存的旧版本冲突jar包
方案2:降低Spring Boot版本适配现有Dalston.SR1
如果需要保留当前Dalston版本的Spring Cloud,只需将父pom的Spring Boot版本降级为适配的1.5.x版本即可,修改父pom配置:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.22.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
该方案的缺点是Spring Boot 1.5.x已停止官方维护,不建议新项目采用。
验证方法
修改配置后可执行mvn dependency:tree命令查看所有org.springframework.boot开头的依赖版本,确认所有Spring Boot相关依赖版本完全统一,无多版本共存即可。
内容的提问来源于stack exchange,提问作者Stackon
相关产品推荐
相关产品推荐

