赞
踩
在搭建SpringCloud
项目环境架构的时候,需要选择SpringBoot
和SpringCloud
进行兼容的版本号,因此对于选择SpringBoot
版本与SpringCloud
版本的对应关系很重要,如果版本关系不对应,常见的会遇见项目启动不起来,怪异的则会是你的项目出现一些诡异的问题,查资料也不好查。下面就收集一下SpringBoot
与SpringCloud
版本之间的对应关系,在搭建项目框架或者学习时按照对应的版本区间进行选择即可,避免走一些不必要的弯路。
Release train Spring Boot compatibility
Spring Cloud Release Train | Spring Boot Version |
---|---|
Hoxton | 2.2.x |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
Camden | 1.4.x |
Brixton | 1.3.x |
Angle | 1.2.x |
注意: 官方通告SpringBoot1.5.x
及以下版本官方不再提供维护了,建议开发者选择使用SpringBoot2.0.x
以上的版本,相对应的SpringCloud
版本也最好不要使用。
访问Spring
官方地址,可获取SpringBoot
和SpringCloud
版本对应信息。
地址如下:
https://start.spring.io/actuator/info
JSON格式如下:
- JSON["bom-ranges"]["spring-cloud"]["Finchley.M9"]◣
- Path:
- JSON["bom-ranges"]["spring-cloud"]["Finchley.M9"]
-
- Key:
- Finchley.M9
- : Copy deURI deBase64 aLine Copied!
-
- Modify
- +Expand all -Collapse all Expand node Scroll to node
-
- Show value Show img Show array leng Show ico
- JSON
- git
- commit
- time2020-04-17T16:18:36Z
- id7f707c1
- branch7f707c17bed34a13b5bc9d5d58c71fc5a901c335
- build
- version0.0.1-SNAPSHOT
- artifactstart-site
- namestart.spring.io website
- versions
- initializr0.9.0.BUILD-SNAPSHOT
- spring-boot2.2.6.RELEASE
- groupio.spring.start
- time2020-04-17T16:19:53.303Z
- bom-ranges
- azure
- 2.0.10Spring Boot >=2.0.0.RELEASE and <2.1.0.RELEASE
- 2.1.7Spring Boot >=2.1.0.RELEASE and <2.2.0.M1
- 2.2.0Spring Boot >=2.2.0.M1
- codecentric-spring-boot-admin
- 2.0.6Spring Boot >=2.0.0.M1 and <2.1.0.M1
- 2.1.6Spring Boot >=2.1.0.M1 and <2.2.0.M1
- 2.2.1Spring Boot >=2.2.0.M1
- solace-spring-boot
- 1.0.0Spring Boot >=2.2.0.RELEASE and <2.3.0.M1
- solace-spring-cloud
- 1.0.0Spring Boot >=2.2.0.RELEASE and <2.3.0.M1
- spring-cloud
- Finchley.M2Spring Boot >=2.0.0.M3 and <2.0.0.M5
- Finchley.M3Spring Boot >=2.0.0.M5 and <=2.0.0.M5
- Finchley.M4Spring Boot >=2.0.0.M6 and <=2.0.0.M6
- Finchley.M5Spring Boot >=2.0.0.M7 and <=2.0.0.M7
- Finchley.M6Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1
- Finchley.M7Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2
- Finchley.M9Spring Boot >=2.0.0.RELEASE and <=2.0.0.RELEASE
- Finchley.RC1Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASE
- Finchley.RC2Spring Boot >=2.0.2.RELEASE and <2.0.3.RELEASE
- Finchley.SR4Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOT
- Finchley.BUILD-SNAPSHOTSpring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3
- Greenwich.M1Spring Boot >=2.1.0.M3 and <2.1.0.RELEASE
- Greenwich.SR5Spring Boot >=2.1.0.RELEASE and <2.1.14.BUILD-SNAPSHOT
- Greenwich.BUILD-SNAPSHOTSpring Boot >=2.1.14.BUILD-SNAPSHOT and <2.2.0.M4
- Hoxton.SR3Spring Boot >=2.2.0.M4 and <2.3.0.BUILD-SNAPSHOT
- Hoxton.BUILD-SNAPSHOTSpring Boot >=2.3.0.BUILD-SNAPSHOT
- spring-cloud-alibaba
- 2.2.0.RELEASESpring Boot >=2.2.0.RELEASE and <2.3.0.M1
- spring-cloud-services
- 2.0.3.RELEASESpring Boot >=2.0.0.RELEASE and <2.1.0.RELEASE
- 2.1.7.RELEASESpring Boot >=2.1.0.RELEASE and <2.2.0.RELEASE
- 2.2.3.RELEASESpring Boot >=2.2.0.RELEASE and <2.3.0.M1
- spring-statemachine
- 2.0.0.M4Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1
- 2.0.0.M5Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2
- 2.0.1.RELEASESpring Boot >=2.0.0.RELEASE
- vaadin
- 10.0.17Spring Boot >=2.0.0.M1 and <2.1.0.M1
- 14.1.25Spring Boot >=2.1.0.M1
- dependency-ranges
- okta
- 1.2.1Spring Boot >=2.1.2.RELEASE and <2.2.0.M1
- 1.4.0Spring Boot >=2.2.0.M1
- mybatis
- 2.0.1Spring Boot >=2.0.0.RELEASE and <2.1.0.RELEASE
- 2.1.2Spring Boot >=2.1.0.RELEASE
- geode
- 1.2.6.RELEASESpring Boot >=2.2.0.M5 and <2.3.0.M1
- 1.3.0.M3Spring Boot >=2.3.0.M1 and <2.3.0.BUILD-SNAPSHOT
- 1.3.0.BUILD-SNAPSHOTSpring Boot >=2.3.0.BUILD-SNAPSHOT
- camel
- 2.22.4Spring Boot >=2.0.0.M1 and <2.1.0.M1
- 2.25.1Spring Boot >=2.1.0.M1 and <2.2.0.M1
- 3.2.0Spring Boot >=2.2.0.M1
项目搭建初期,如何对SpringBoot
和SpringCloud
的一个相互兼容性版本号进行选择,这是很重要的一步,例如SpringCloud
的Hoxton.SR3
这个版本,他对应的"Spring Boot >=2.2.0.M4 and <2.3.0.BUILD-SNAPSHOT"
版本,意思就是如果选择使用SpringCloud
的Hoxton.SR3
这个版本,那么SpringBoot
的版本需要大于等于2.2.0小于2.3.0
即可满足兼容性。
官方提供了管理Spring Cloud
每个版本兼容的pom
,引入下面依赖管理信息即可:
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-dependencies</artifactId>
- <version>Hoxton.SR3</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
Spring Boot
可以也像父工程那样管理自己内部的兼容版本号,如下:
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.2.5.RELEASE</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
由于Spring Cloud
基于Spring Boot
构建,而Spring Cloud Alibaba
又基于Spring Cloud Common
的规范实现,所以当我们使用``Spring Cloud Alibaba`来构建微服务应用的时候,需要知道这三者之间的版本关系。
下表整理了目前Spring Cloud Alibaba
的版本与Spring Boot
、Spring Cloud
版本的兼容关系:
Spring Cloud Version | Spring Cloud Alibaba Version | Spring Boot Version |
---|---|---|
Spring Cloud Hoxton.SR8 | 2.2.3.RELEASE | 2.3.2.RELEASE |
Spring Cloud Greenwich.SR6 | 2.1.3.RELEASE | 2.1.13.RELEASE |
Spring Cloud Hoxton.SR8 | 2.2.2.RELEASE | 2.3.2.RELEASE |
Spring Cloud Hoxton.SR3 | 2.2.1.RELEASE | 2.2.5.RELEASE |
Spring Cloud Hoxton.RELEASE | 2.2.0.RELEASE | 2.2.X.RELEASE |
Spring Cloud Greenwich | 2.1.2.RELEASE | 2.1.X.RELEASE |
Spring Cloud Finchley | 2.0.3.RELEASE | 2.0.X.RELEASE |
Spring Cloud Edgware | 1.5.1.RELEASE(停止维护,建议升级) | 1.5.X.RELEASE |
Spring Cloud Alibaba
是基于Spring Cloud Common
的规范实现,而Spring Cloud Alibaba
的各个微服务组件依赖于Spring Cloud Alibaba
自身,因此我们需要知道Spring Cloud Alibaba
与其自身微服务组件之间的版本关系。
下表整理了目前Spring Cloud Alibaba
的版本与Sentinel
、Nacos
、RocketMQ
、Dubbo
、Seata
版本的兼容关系:
Spring Cloud Alibaba Version | Sentinel Version | Nacos Version | RocketMQ Version | Dubbo Version | Seata Version |
---|---|---|---|---|---|
2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE | 1.8.0 | 1.3.3 | 4.4.0 | 2.7.8 | 1.3.0 |
2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE | 1.7.1 | 1.2.1 | 4.4.0 | 2.7.6 | 1.2.0 |
2.2.0.RELEASE | 1.7.1 | 1.1.4 | 4.4.0 | 2.7.4.1 | 1.0.0 |
2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE | 1.7.0 | 1.1.4 | 4.4.0 | 2.7.3 | 0.9.0 |
2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE | 1.6.3 | 1.1.1 | 4.4.0 | 2.7.3 | 0.7.1 |
Spring Cloud Alibaba BOM
包含了它所使用的所有依赖的版本。
如果需要使用 Spring Cloud Hoxton
版本,请在 dependencyManagement
中添加如下配置
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-alibaba-dependencies</artifactId>
- <version>2.2.3.RELEASE</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
然后在dependencies
中添加自己所需使用的依赖即可使用。
如果需要使用 Spring Cloud Greenwich
版本,请在 dependencyManagement
中添加如下配置
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-alibaba-dependencies</artifactId>
- <version>2.1.3.RELEASE</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
然后在 dependencies
中添加自己所需使用的依赖即可使用。
如果需要使用 Spring Cloud Finchley
版本,请在 dependencyManagement
中添加如下配置
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-alibaba-dependencies</artifactId>
- <version>2.0.3.RELEASE</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
然后在dependencies
中添加自己所需使用的依赖即可使用。
如果需要使用 Spring Cloud Edgware
版本,请在 dependencyManagement
中添加如下配置
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-alibaba-dependencies</artifactId>
- <version>1.5.1.RELEASE</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
然后在 dependencies
中添加自己所需使用的依赖即可使用。
项目的版本号格式为 x.x.x 的形式,其中 x 的数值类型为数字,从 0 开始取值,且不限于 0~9 这个范围。项目处于孵化器阶段时,第一位版本号固定使用 0,即版本号为 0.x.x 的格式。
由于 `Spring Boot 1 和 Spring Boot 2 在 Actuator 模块的接口和注解有很大的变更,且 spring-cloud-commons 从 1.x.x 版本升级到 2.0.0 版本也有较大的变更,因此我们采取跟 SpringBoot 版本号一致的版本:
1.Spring-Cloud-Alibaba版本说明:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
3.SpringCloudAlibaba中文社区地址: https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。