解決springboot與springcloud版本兼容問題(附版本兼容表)
1. 場景描述(產(chǎn)生環(huán)境)
在基于spring boot搭建spring cloud時(shí),創(chuàng)建eureka后啟動(dòng)服務(wù)發(fā)生報(bào)錯(cuò),報(bào)錯(cuò)內(nèi)容如下,如覺得繁瑣可直接看第三步解決方法進(jìn)行嘗試,或可直接解決問題。
注: 使用zuul的場景有些特殊,所以放在最后講,如果是zuul使用的報(bào)錯(cuò)請(qǐng)移步5
2. 報(bào)錯(cuò)代碼(控制臺(tái))
2.1 報(bào)錯(cuò)1
Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Bean
試了幾次,有時(shí)候還會(huì)出現(xiàn)下面的報(bào)錯(cuò)-報(bào)錯(cuò)2
2.2 報(bào)錯(cuò)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/)
兩個(gè)版本都能對(duì)應(yīng)上之后啟動(dòng)項(xiàng)目又出現(xiàn)了新的報(bào)錯(cuò)-報(bào)錯(cuò)3
2.3 報(bào)錯(cuò)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
如果報(bào)錯(cuò)3的問題也解決了,這個(gè)時(shí)候使用的兩個(gè)不兼容的版本,如果刷新依賴也沒報(bào)錯(cuò)的話,啟動(dòng)項(xiàng)目后正常會(huì)報(bào)下面的錯(cuò),如報(bào)錯(cuò)4
2.4 報(bào)錯(cuò)4
使用springboot2.7.3和springcloud2020.0.5后啟動(dòng)項(xiàng)目出現(xiàn)如下報(bào)錯(cuò)
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 針對(duì)報(bào)錯(cuò)1、報(bào)錯(cuò)2、報(bào)錯(cuò)4的解決
百度后確定是版本不兼容問題,于是按照網(wǎng)上某博主版本列表配對(duì),本章末尾附版本對(duì)照表可供參考。
我使用的版本是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
這三個(gè)版本都是親測可用的(順利起了服務(wù)并訪問成功)
3.2 針對(duì)報(bào)錯(cuò)3的解決
版本確定沒配錯(cuò),那么這個(gè)報(bào)錯(cuò)3如果發(fā)生了,可以按照如下解決在依賴中添加type和scope標(biāo)簽,如下
在父類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>
雖然不知道原理,但的確解決了報(bào)錯(cuò)3這個(gè)問題
4. 總結(jié)
正常版本兼容問題常常發(fā)生,所以一般使用偏老一點(diǎn)的依賴來用會(huì)減少一些問題,但很多情況下即使使用老的版本也會(huì)出現(xiàn)問題。
只要按照下面的方式來配置一般不會(huì)有毛病。
父項(xiàng)目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>
子模塊項(xiàng)目的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使用的報(bào)錯(cuò)與解決
使用兼容列表里對(duì)應(yīng)的spring boot和spring cloud版本后,springcloud中的eureka等其他功能正常,但使用zuul時(shí)啟動(dòng)zuul服務(wù)后出現(xiàn)了報(bào)錯(cuò),此時(shí)可嘗試使用以下兩個(gè)版本:spring boot 的2.2.4.RELEASE和spring cloud 的Hoxton.SR12一般可解決問題
我遇到的是如下報(bào)錯(cuò):
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
以上兩個(gè)報(bào)錯(cuò)都可將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版本兼容問題(附版本兼容表)的詳細(xì)內(nèi)容,更多關(guān)于springboot與springcloud版本兼容的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Spring Cloud 配置中心多環(huán)境配置bootstrap.yml的實(shí)現(xiàn)方法
- 將Springboot項(xiàng)目升級(jí)成Springcloud項(xiàng)目的圖文教程
- SpringCloud解決Feign異步回調(diào)問題(SpringBoot+Async+Future實(shí)現(xiàn))
- SpringBoot項(xiàng)目改為SpringCloud項(xiàng)目使用nacos作為注冊(cè)中心的方法
- SpringBoot(cloud)自動(dòng)裝配bean找不到類型的問題
- springboot集成springCloud中g(shù)ateway時(shí)啟動(dòng)報(bào)錯(cuò)的解決
- 解決nacos升級(jí)spring cloud 2020.0無法使用bootstrap.yml的問題
- 從零開始搭建springboot+springcloud+mybatis本地項(xiàng)目全過程(圖解)
- 詳解SpringBoot與SpringCloud的版本對(duì)應(yīng)詳細(xì)版
- Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯(lián)系分析
相關(guān)文章
gRPC實(shí)踐之proto及Maven插件概念及使用詳解
這篇文章主要為大家介紹了gRPC實(shí)踐之proto及Maven插件概念及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
SpringBoot環(huán)境Druid數(shù)據(jù)源使用及特點(diǎn)
Druid 是目前比較流行的高性能的,分布式列存儲(chǔ)的OLAP框架(具體來說是MOLAP)。本文給大家分享SpringBoot環(huán)境Druid數(shù)據(jù)源使用及特點(diǎn)介紹,感興趣的朋友跟隨小編一起看看吧2021-07-07
mybaits-spring的實(shí)現(xiàn)方式
這篇文章主要介紹了mybaits-spring的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
java.util.Date和java.time.LocalDate對(duì)比及分析
本文介紹了java.util.Date和java.time下的日期兩種日期類型的區(qū)別和使用場景,前者表示一個(gè)瞬時(shí)時(shí)間點(diǎn),包含日期+時(shí)間,后者僅表示純?nèi)掌?后者時(shí)區(qū)無關(guān)聯(lián),而前者依賴操作系統(tǒng)時(shí)區(qū)顯示,兩者之間可以相互轉(zhuǎn)換,并且可以格式化輸出2026-05-05
使用SpringBoot+AOP實(shí)現(xiàn)可插拔式日志的示例代碼
這篇文章主要介紹了使用SpringBoot+AOP實(shí)現(xiàn)可插拔式日志的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
java使用CollectionUtils工具類判斷集合是否為空方式
這篇文章主要介紹了java使用CollectionUtils工具類判斷集合是否為空方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
詳解Spring Boot微服務(wù)如何集成fescar解決分布式事務(wù)問題
這篇文章主要介紹了詳解Spring Boot微服務(wù)如何集成fescar解決分布式事務(wù)問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01

