Spring Cloud是一个由很多子项目组成的一个大型项目,原则上都有自己的发布版本。为了要管理每个版本的子项目清单,所以命名没有采用版本号的方式,而是通过命名的方式,以避免版本名与子项目的发布号混淆。

版本名称采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序(第一个版本:Angel,第二个版本:Brixton,依次类推Camden、Dalston、Edgware、Finchley……)。当个别项目发布积累到临界点或者解决了其中一个严重的bug时。将会发布一个名为“.SRX”的 “service releases”版本。其中“X”是数字,依次递增。比如Camden SR7的SR7、Dalston SR2的SR2就是版本号了。 下图是目前官网的版本号分布,可以看到现在已经到F了。 spring cloud官网:https://projects.spring.io/spring-cloud/

版本号规则

Spring Cloud并没有熟悉的数字版本号,而是对应一个开发代号。

|Cloud代号| Boot版本(train) | Boot版本(tested) | lifecycle | -------- | -------- | -------- | | Angle | 1.2.x | incompatible with 1.3 |EOL in July 2017 |Brixton | 1.3.x | 1.4.x | 2017-07卒 |Camden | 1.4.x | 1.5.x | - |Dalston | 1.5.x | not expected 2.x | - |Edgware | 1.5.x | not expected 2.x | - |Finchley| 2.x | not expected 1.5.x | -

开发代号看似没有什么规律,但实际上首字母是有顺序的,比如:Dalston版本,我们可以简称 D 版本,对应的 Edgware 版本我们可以简称 E 版本。

D版本和E版本的区别

二者均基于SpringBoot的1.5.x版本。但支持其他组件的版本不同,如以 Dalston.SR4 和 Edgware.RELEASE 来对比:

spring-cloud-config 分别对应 1.3.3和 1.4.0; spring-cloud-netflix 分别对应 1.3.5和 1.4.0; spring-cloud-consul 分别对应 1.2.1和 1.3.0; spring-cloud-gateway 前者不支持,后者 1.0.0。

每个小版本的不同,会有细微差别。

F版本

F版本是个绝对的大版本,几乎所有组件,全部同步变更版本号为2.x。

小版本

Spring Cloud 小版本分为:

SNAPSHOT: 快照版本,随时可能修改

M: MileStone,M1表示第1个里程碑版本,一般同时标注PRE,表示预览版版。

SR: Service Release,SR1表示第1个正式版本,一般同时标注GA:(GenerallyAvailable),表示稳定版本。

选择版本

大版本

首先说明,各个版本之间组件变化不大,但细节略有不同,比如配置项名称、或者新版本增加新的配置方式。 从这一点来看,选择哪个版本都不是大问题,但提醒一下,遇到坑时,最好根据版本进行查询,否则你会发现你找到的办法不行。实际上是版本不匹配。

如果你项目需要和其他老项目交叉,以兼容为第一要务。

如果全新项目,可以考虑较新版本,如E版。如果你爱好踩坑,F拿去。

小版本

小版本没啥可说的,尝鲜:SNAPSHOT,生产:GA