解決springboot與springcloud版本兼容問題(附版本兼容表)
1. 場景描述(產(chǎn)生環(huán)境)
在基于spring boot搭建spring cloud時,創(chuàng)建eureka后啟動服務(wù)發(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/)
兩個版本都能對應(yīng)上之后啟動項目又出現(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
這三個版本都是親測可用的(順利起了服務(wù)并訪問成功)
3.2 針對報錯3的解決
版本確定沒配錯,那么這個報錯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>
雖然不知道原理,但的確解決了報錯3這個問題
4. 總結(jié)
正常版本兼容問題常常發(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使用的報錯與解決
使用兼容列表里對應(yīng)的spring boot和spring cloud版本后,springcloud中的eureka等其他功能正常,但使用zuul時啟動zuul服務(wù)后出現(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)容,更多關(guān)于springboot與springcloud版本兼容的資料請關(guān)注腳本之家其它相關(guān)文章!
- 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中g(shù)ateway時啟動報錯的解決
- 解決nacos升級spring cloud 2020.0無法使用bootstrap.yml的問題
- 從零開始搭建springboot+springcloud+mybatis本地項目全過程(圖解)
- 詳解SpringBoot與SpringCloud的版本對應(yīng)詳細版
- Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯(lián)系分析
相關(guān)文章
SpringBoot+JWT實現(xiàn)單點登錄完美解決方案
單點登錄是一種統(tǒng)一認證和授權(quán)機制,指在多個應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的系統(tǒng),不需要重新登錄驗證,這篇文章主要介紹了SpringBoot+JWT實現(xiàn)單點登錄解決方案,需要的朋友可以參考下2023-07-07java后端調(diào)用第三方接口返回圖片流給前端的具體代碼實現(xiàn)
在前后端分離的開發(fā)中,經(jīng)常會遇到需要從后端返回圖片流給前端的情況,下面這篇文章主要給大家介紹了關(guān)于java后端調(diào)用第三方接口返回圖片流給前端的具體代碼實現(xiàn),需要的朋友可以參考下2024-02-02Java8新特性之精簡的JRE詳解_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Java8新特性之精簡的JRE詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06Java關(guān)鍵字finally_動力節(jié)點Java學(xué)院整理
java關(guān)鍵字finally不管是否出現(xiàn)異常,finally子句總是在塊完成之前執(zhí)行。下面通過實現(xiàn)代碼給大家介紹Java關(guān)鍵字finally相關(guān)知識,需要的的朋友參考下吧2017-04-04SpringBoot基于MyBatis-Plus實現(xiàn)Lambda Query查詢的示例代碼
MyBatis-Plus 是 MyBatis 的增強工具,簡化了數(shù)據(jù)庫操作,并提高了開發(fā)效率,它提供了多種查詢方式,包括常規(guī)的 SQL 查詢、Lambda Query 查詢、分頁查詢、條件查詢等,在本篇博客中,我們將詳細講解如何使用 MyBatis-Plus 的各種查詢方式,需要的朋友可以參考下2025-01-01