0


spring boot与spring cloud版本兼容问题解决(附版本兼容表)

 天行健,君子以自强不息;地势坤,君子以厚德载物。

每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

spring boot和spring cloud版本兼容问题解决

以下为解决报错问题,如果看完还不能解决,可以参考下面这篇文章搭建spring cloud

spring cloud搭建

1. 场景描述(产生环境)

在基于spring boot搭建spring cloud时,创建eureka后启动服务发生报错,报错内容如下,如觉得繁琐可直接看第三步解决方法进行尝试,或可直接解决问题。

注: 使用zuul的场景有些特殊,所以放在最后讲,如果是zuul使用的报错请移步5

2. 报错代码(控制台)

2.1 报错1

Error creating bean withname 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]:Bean

试了几次,有时候还会出现下面的报错-报错2

2.2 报错2

Could not find artifact org.springframework.cloud:spring-cloud-starter-netflix-eureka-server:pom:2021.0.5 in alimaven (http://maven.aliyun.com/nexus/content/groups/public/)

两个版本都能对应上之后启动项目又出现了新的报错-报错3

2.3 报错3

org.springframework.cloud:spring-cloud-starter-netflix-eureka-server:jar:unknown was not found in http://maven.aliyun.com/nexus/content/groups/public/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of alimaven has elapsed or updates are forced

如果报错3的问题也解决了,这个时候使用的两个不兼容的版本,如果刷新依赖也没报错的话,启动项目后正常会报下面的错,如报错4

2.4 报错4

使用springboot2.7.3和springcloud2020.0.5后启动项目出现如下报错

Action:Consider applying the following actions:-ChangeSpringBoot version toone of the following versions [2.4.x,2.5.x].You can find the latest SpringBoot versions here [https://spring.io/projects/spring-boot#learn].If you want tolearn more about the SpringCloudRelease train compatibility, you can visit this page [https://spring.io/projects/spring-cloud#overview] and check the [ReleaseTrains]section.
If you want todisablethis check, just set the property [spring.cloud.compatibility-verifier.enabled=false]

在这里插入图片描述


3. 解决方法

3.1 针对报错1、报错2、报错4的解决

百度后确定是版本不兼容问题,于是按照网上某博主版本列表配对,本章末尾附版本对照表可供参考。

我使用的版本是spring boot的

2.7.3

以及spring cloud的

2021.0.5

还试了
spring boot的

2.5.3

以及spring cloud的

2020.0.5

spring boot的

2.1.4.RELEASE

以及spring cloud的

Greenwich.RELEASE

这三个版本都是亲测可用的(顺利起了服务并访问成功)

3.2 针对报错3的解决

版本确定没配错,那么这个报错3如果发生了,可以按照如下解决

在依赖中添加type和scope标签

,如下
在父类pom.xml中配置如下

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version></parent><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.5</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

虽然不知道原理,但的确解决了报错3这个问题

4. 总结

正常版本兼容问题常常发生,所以一般使用偏老一点的依赖来用会减少一些问题,但很多情况下即使使用老的版本也会出现问题。
只要按照下面的方式来配置一般不会有毛病。
父项目pom.xml中的配置添加如下:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version></parent><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.5</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

子模块项目的pom.xml配置如下:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies>

5. zuul使用的报错与解决

使用兼容列表里对应的spring boot和spring cloud版本后,springcloud中的eureka等其他功能正常,但使用zuul时启动zuul服务后出现了报错,此时可尝试使用以下两个版本:spring boot 的2.2.4.RELEASE和spring cloud 的Hoxton.SR12一般可解决问题
我遇到的是如下报错:

org.springframework.cloud:spring-cloud-starter-netflix-zuul:jar:unknown was not found in http://maven.aliyun.com/nexus/content/groups/public/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of alimaven has elapsed or updates are forced

或者以下报错:

Error creating bean withname 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]:Post-processing of merged bean definition failed; nested exception is java.lang.IllegalStateException:FailedtointrospectClass[org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader[sun.misc.Launcher$AppClassLoader@18b4aac2]

以上两个报错都可将springboot和spring cloud的版本换为上面推荐的2.2.4.RELEASE和Hoxton.SR12即可解决问题

6. spring boot和spring cloud版本兼容表

这是参考的一位博主的表格,对于更详细的版本介绍请移步这位博主的文章:spring cloud版本介绍
SpringCloud版本SpringBoot版本2022.0.0-M2Spring Boot >=3.0.0-M2 and < 3.1.0-M12022.0.0-M1Spring Boot >=3.0.0-M1 and < 3.0.0-M22021.0.3Spring Boot >=2.6.1 and < 3.0.0-M12021.0.0-RC1Spring Boot >=2.6.0-RC1 and <2.6.12021.0.0-M3Spring Boot >=2.6.0-M3 and <2.6.0-RC12021.0.0-M1Spring Boot >=2.6.0-M1 and <2.6.0-M32020.0.5Spring Boot >=2.4.0.M1 and <2.6.0-M1Hoxton.SR12Spring Boot >=2.2.0.RELEASE and <2.4.0.M1Hoxton.BUILD-SNAPSHOTSpring Boot >=2.2.0.BUILD-SNAPSHOTHoxton.M2Spring Boot >=2.2.0.M4 and <=2.2.0.M5Greenwich.BUILD-SNAPSHOSpring Boot >=2.1.9.BUILD-SNAPSHOT and <2.2.0.M4Greenwich.SR2Spring Boot >=2.1.0.RELEASE and <2.1.9.BUILD-SNAPSHOTGreenwich.M1Spring Boot >=2.1.0.M3 and <2.1.0.RELEASEFinchley.BUILD-SNAPSHOTSpring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3Finchley.SR4Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOTFinchley.RC2Spring Boot >=2.0.2.RELEASE and <2.0.3.RELEASEFinchley.RC1Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASEFinchley.M9Spring Boot >=2.0.0.RELEASE and <=2.0.0.RELEASEFinchley.M7Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2Finchley.M6Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1Finchley.M5Spring Boot >=2.0.0.M7 and <=2.0.0.M7Finchley.M4Spring Boot >=2.0.0.M6 and <=2.0.0.M6Finchley.M3Spring Boot >=2.0.0.M5 and <=2.0.0.M5Finchley.M2Spring Boot >=2.0.0.M3 and <2.0.0.M5Edgware.SR51.5.20.RELEASEEdgware.SR51.5.16.RELEASEEdgware.RELEASE1.5.9.RELEASEDalston.RC11.5.2.RELEASE


本文转载自: https://blog.csdn.net/mo_sss/article/details/130950161
版权归原作者 寒山李白 所有, 如有侵权,请联系我们删除。

“spring boot与spring cloud版本兼容问题解决(附版本兼容表)”的评论:

还没有评论