SpringCloud 版本

7,870 阅读4分钟

SpringCloud 主项目版本命名并没有采数字版本化的形式,而是采用了英文名称。

类似于安卓用 奥利奥、棒棒糖 等点心名作为版本名称,SpringCloud 也采用了该方法,选择英国伦敦地铁站的名称来命名,并按地铁站名称的首字母A-Z依次命名

大版本号

Spring Cloud 大版本 Spring Boot 大版本 说明
Angel 兼容Spring Boot 1.2.x 不建议使用
Brixton 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x 不建议使用
Camden 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x 不建议使用
Dalston 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x 不建议使用
Edgware 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x 已于2019/08/01 退役
Finchley 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x 要求 jdk1.8
Greenwich 兼容Spring Boot 2.1.x 推荐使用
Hoxton 兼容Spring Boot 2.2.x 目前版本到 M2

如上,Spring Cloud Edgware 已退役,而Finchley 版本作为 Spring Boot 2.0.x 的主要版本,Finchley 的生命周期也会由 Spring Boot 2.0.x 版本的终止而终止。因此不管是学习还是使用,目前仅推荐 Greenwich 版。

小版本号

Spring Cloud 版本 Spring Boot 版本
Finchley.M9 2.0.0.RELEASE
Finchley.RC1 2.0.1.RELEASE
Greenwich.BUILD-SNAPSHOT 2.1.8.BUILD-SNAPSHOT
Greenwich.RELEASE 2.1.2.RELEASE
Greenwich.SR1 2.1.3.RELEASE
Greenwich.SR2 2.1.5.RELEASE

版本号含义

Spring Cloud 处于快速迭代状态,开发的不同阶段对应着不同的版本号,一个大版本是从 BUILD-SNAPSHOT 开始的,他表示快照版本,这个版本的代码不是固定的,而是处于变化之中。

等到开发到了一定的阶段比如50%,就会发布一个MX 版本,他表示里程碑版。比如M1表示第一个里程碑版

经过数个里程碑版后,已经开发的差不多了,这是会发布候选发布版(RCX),该版本为正式版提供一个发行观察期,主要修复一些bug,RC1 表示第一个候选发布版

在经过一个或多个候选发布版后,正式版(RELEASE) 就发布了

正式版发布之后,如果有被发现了错误和bug,修复之后就会发布SRX版,他也叫正式版。

总结

版本号 含义
BUILD-SNAPSHOT 快照版,代码不是固定,处于变化之中
MX 里程碑版
RCX 候选发布版
RELEASE 正式发布版
SR2 正式发布版

在SpringCloud 官网上,每个版本号后面还带有一个英文标示,这些英文标示是什么意思呢

标示 含义
CURRENT 当前推荐的版本
GA 稳定版,可用于生产
PRE 里程碑版
SNAPSHOT 快照

查找 SpringCloud 与 SpringBoot 版本对应关系

这里先吐槽一下官方, Spring官网的 版本对应关系一直在更新,而不是追加 比如2019/08/21日,官网的版本对应关系是这样的

如图,只展示了寥寥几个版本的对应关系,很多历史版本根本不展示,而且官网也没有一个明确的地方可以查的到(如果有人知道哪里查的到请留言告诉我,谢谢)而且这个列表还在变化之中,过一段时间可能又不一样。

官方糟糕的的展示策略,为我们寻找历史版本的对应关系添加极大的障碍,导致我们只能通过网友的博库和官网的蛛丝马迹来推论出版本对应关系

首先是 这个网站 其中有一段json的这样的

意思好像是说 Spring Cloud Greenwich.SR2 对应的 Spring Boot 版本要在 2.1.0.RELEASE 和 2.1.8.BUILD-SNAPSHOT 之间

也就是说 Spring Cloud 与 Spring Boot 的版本,并不是一一对应的,而是 Spring Boot 只要满足一定的版本区间都可以。 这一点官方好像只在大版本说过,在小版本好像没有说过类似的话。这导致我一直以为 某一个具体的Spring Cloud 版本只对应 一个具体的Spring Boot 版本。

那么我们怎么知道每一个 Spring Cloud 版本对应的 Spring Boot 版本区间呢? 可以参考上面的网址,上面网站没有的,说实话我也没找到

通过官方文档找版本对应关系

如果上面的办法都找不到你想找的版本,可以通过查看官方文档,来寻找。

选择这一个,就可以看到全部的内容了

在这里面查找 spring-boot-starter-parent ,在88.5.1节有提到

在这个 Greenwich.SR2 文档里, spring-boot-starter-parent 的版本是 2.1.6.RELEASE ,而官方网址上写的是 2.1.5.RELEASE 。到底该信哪一个?

其实两个都可以,上面已经说了 Spring Cloud 与 Spring Boot 的版本,并不是一一对应的,而是 Spring Boot 只要满足一定的版本区间都可以。

如果你找不到历史版本的文档,可以随便找个网址然后把url改掉

找个对应关系这么麻烦,说到底还是官方这块工作没做好