Spring Cloud 版本问题对于存量使用 spring boot 项目, 选择一个相应的版本, 与存量项目匹配, 解决 jar 包冲突问题很重要.
Spring Cloud 是一个由众多独立子项目组成的大型综合项目, 每个子项目有不同的发行节奏, 都维护着自己的发布版本号. Spring Cloud 通过一个资源清单 BOM(Bill of Materials) 来管理每个版本的子项目清单. 为避免与子项目的发布号混淆, 所以没有采用版本号的方式, 而是通过命名的方式.
这些版本名称的命名方式采用了伦敦地铁站的名称, 同时根据字母表的顺序来对应版本时间顺序, 比如: 最早的 Release 版本: Angel, 第二个 Release 版本: Brixton, 然后是 Camden,Dalston,Edgware, 目前最新的是 Finchley 版本.
当一个版本的 Spring Cloud 项目的发布内容积累到临界点或者解决了一个严重 bug 后, 就会发布一个 "service releases" 版本, 简称 SRX 版本, 其中 X 是一个递增数字. 当前官网上最新的稳定版本是 Edgware.SR3, 里程碑版本是 Finchley.M9.
官方版本匹配:
2019-01-19 Spring Cloud 官方文档写版本匹配
Spring Cloud 官方最新版本:
官方解释:
Finchley builds and works with Spring Boot 2.0.x, and is not expected to work with Spring Boot 1.5.x.
中文翻译: Finchley 构建并使用 Spring Boot 2.0., 并且不希望与 Spring Boot 1.5.x 一起工作.
Finchley 与 Spring Boot 2.0.x, 兼容, 不支持 Spring Boot 1.5.x.
Dalston 和 Edgware 与 Spring Boot 1.5.x, 兼容, 不支持 Spring Boot 2.0.x.
Camden 是构建在 Spring Boot 1.4.x, 之上, 但也支持 1.5.x.
Brixton 是构建在 Spring Boot 1.3.x, 之上, 但也支持 1.4.x.
Angel 是构建在 Spring Boot 1.2.x, 之上, 但也兼容 Spring Boot 1.3.x.
注意: Angel 和 Brixton 两个版本已于 2017 年 7 月终止不再进行维护.
注意: Angel 和 Brixton 两个版本已于 2017 年 7 月终止不再进行维护.
版本编号解释:
开发代号看似没有什么规律, 但实际上首字母是有顺序的, 比如: 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), 表示稳定版本.
选择版本
idea 里面的 RC 版本
idea 里面的 RC 版本英文版名字叫 Release Candidate(候选版本)
大版本
首先说明, 各个版本之间组件变化不大, 但细节略有不同, 比如配置项名称, 或者新版本增加新的配置方式.
从这一点来看, 选择哪个版本都不是大问题, 但提醒一下, 遇到坑时, 最好根据版本进行查询, 否则你会发现你找到的办法不行. 实际上是版本不匹配.
如果你项目需要和其他老项目交叉, 以兼容为第一要务.
如果全新项目, 可以考虑较新版本, 如 E 版. 如果你爱好踩坑, F 拿去.
小版本
小版本没啥可说的, 尝鲜: SNAPSHOT, 生产: GA.
附带 -Springboot 版本 + jdk 版本 + Maven 版本的匹配:
来源: http://www.jianshu.com/p/352511faab90