解決springboot與springcloud版本兼容問題(附版本兼容表)
1. 場景描述(產(chǎn)生環(huán)境)
在基于spring boot搭建spring cloud時,創(chuàng)建eureka后啟動服務發(fā)生報錯,報錯內(nèi)容如下,如覺得繁瑣可直接看第三步解決方法進行嘗試,或可直接解決問題。
注: 使用zuul的場景有些特殊,所以放在最后講,如果是zuul使用的報錯請移步5
2. 報錯代碼(控制臺)
2.1 報錯1
Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Bean
試了幾次,有時候還會出現(xiàn)下面的報錯-報錯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/)
兩個版本都能對應上之后啟動項目又出現(xiàn)了新的報錯-報錯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后啟動項目出現(xiàn)如下報錯
Action: Consider applying the following actions: - Change Spring Boot version to one of the following versions [2.4.x, 2.5.x] . You can find the latest Spring Boot versions here [https://spring.io/projects/spring-boot#learn]. If you want to learn more about the Spring Cloud Release train compatibility, you can visit this page [https://spring.io/projects/spring-cloud#overview] and check the [Release Trains] section. If you want to disable this check, just set the property [spring.cloud.compatibility-verifier.enabled=false]

3. 解決方法
3.1 針對報錯1、報錯2、報錯4的解決
百度后確定是版本不兼容問題,于是按照網(wǎng)上某博主版本列表配對,本章末尾附版本對照表可供參考。
我使用的版本是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如果發(fā)生了,可以按照如下解決在依賴中添加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. 總結
正常版本兼容問題常常發(fā)生,所以一般使用偏老一點的依賴來用會減少一些問題,但很多情況下即使使用老的版本也會出現(xiàn)問題。
只要按照下面的方式來配置一般不會有毛病。
父項目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服務后出現(xiàn)了報錯,此時可嘗試使用以下兩個版本: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
以上兩個報錯都可將springboot和spring cloud的版本換為上面推薦的2.2.4.RELEASE和Hoxton.SR12即可解決問題
6. spring boot和spring cloud版本兼容表
| SpringCloud版本 | SpringBoot版本 |
|---|---|
| 2022.0.0-M2 | Spring Boot >=3.0.0-M2 and < 3.1.0-M1 |
| 2022.0.0-M1 | Spring Boot >=3.0.0-M1 and < 3.0.0-M2 |
| 2021.0.3 | Spring Boot >=2.6.1 and < 3.0.0-M1 |
| 2021.0.0-RC1 | Spring Boot >=2.6.0-RC1 and <2.6.1 |
| 2021.0.0-M3 | Spring Boot >=2.6.0-M3 and <2.6.0-RC1 |
| 2021.0.0-M1 | Spring Boot >=2.6.0-M1 and <2.6.0-M3 |
| 2020.0.5 | Spring Boot >=2.4.0.M1 and <2.6.0-M1 |
| Hoxton.SR12 | Spring Boot >=2.2.0.RELEASE and <2.4.0.M1 |
| Hoxton.BUILD-SNAPSHOT | Spring Boot >=2.2.0.BUILD-SNAPSHOT |
| Hoxton.M2 | Spring Boot >=2.2.0.M4 and <=2.2.0.M5 |
| Greenwich.BUILD-SNAPSHO | Spring Boot >=2.1.9.BUILD-SNAPSHOT and <2.2.0.M4 |
| Greenwich.SR2 | Spring Boot >=2.1.0.RELEASE and <2.1.9.BUILD-SNAPSHOT |
| Greenwich.M1 | Spring Boot >=2.1.0.M3 and <2.1.0.RELEASE |
| Finchley.BUILD-SNAPSHOT | Spring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3 |
| Finchley.SR4 | Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOT |
| Finchley.RC2 | Spring Boot >=2.0.2.RELEASE and <2.0.3.RELEASE |
| Finchley.RC1 | Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASE |
| Finchley.M9 | Spring Boot >=2.0.0.RELEASE and <=2.0.0.RELEASE |
| Finchley.M7 | Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2 |
| Finchley.M6 | Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1 |
| Finchley.M5 | Spring Boot >=2.0.0.M7 and <=2.0.0.M7 |
| Finchley.M4 | Spring Boot >=2.0.0.M6 and <=2.0.0.M6 |
| Finchley.M3 | Spring Boot >=2.0.0.M5 and <=2.0.0.M5 |
| Finchley.M2 | Spring Boot >=2.0.0.M3 and <2.0.0.M5 |
| Edgware.SR5 | 1.5.20.RELEASE |
| Edgware.SR5 | 1.5.16.RELEASE |
| Edgware.RELEASE | 1.5.9.RELEASE |
| Dalston.RC1 | 1.5.2.RELEASE |
以上就是解決springboot與springcloud版本兼容問題(附版本兼容表)的詳細內(nèi)容,更多關于springboot與springcloud版本兼容的資料請關注腳本之家其它相關文章!
- Spring Cloud 配置中心多環(huán)境配置bootstrap.yml的實現(xiàn)方法
- 將Springboot項目升級成Springcloud項目的圖文教程
- SpringCloud解決Feign異步回調(diào)問題(SpringBoot+Async+Future實現(xiàn))
- SpringBoot項目改為SpringCloud項目使用nacos作為注冊中心的方法
- SpringBoot(cloud)自動裝配bean找不到類型的問題
- springboot集成springCloud中gateway時啟動報錯的解決
- 解決nacos升級spring cloud 2020.0無法使用bootstrap.yml的問題
- 從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解)
- 詳解SpringBoot與SpringCloud的版本對應詳細版
- Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯(lián)系分析
相關文章
SpringBoot環(huán)境Druid數(shù)據(jù)源使用及特點
Druid 是目前比較流行的高性能的,分布式列存儲的OLAP框架(具體來說是MOLAP)。本文給大家分享SpringBoot環(huán)境Druid數(shù)據(jù)源使用及特點介紹,感興趣的朋友跟隨小編一起看看吧2021-07-07
java.util.Date和java.time.LocalDate對比及分析
本文介紹了java.util.Date和java.time下的日期兩種日期類型的區(qū)別和使用場景,前者表示一個瞬時時間點,包含日期+時間,后者僅表示純?nèi)掌?后者時區(qū)無關聯(lián),而前者依賴操作系統(tǒng)時區(qū)顯示,兩者之間可以相互轉換,并且可以格式化輸出2026-05-05
使用SpringBoot+AOP實現(xiàn)可插拔式日志的示例代碼
這篇文章主要介紹了使用SpringBoot+AOP實現(xiàn)可插拔式日志的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
java使用CollectionUtils工具類判斷集合是否為空方式
這篇文章主要介紹了java使用CollectionUtils工具類判斷集合是否為空方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
詳解Spring Boot微服務如何集成fescar解決分布式事務問題
這篇文章主要介紹了詳解Spring Boot微服務如何集成fescar解決分布式事務問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01

