Spring Cloud 版本 version 命名说明
目录
开发部署 Spring Cloud 微服务框架,需要先确定 Spring Cloud 的相关环境版本,主要包含:Spring Cloud、Spring Cloud Netflix、JDK、JRE、Java Version等相关版本,以及环境的配置。
spring boot/cloud 项目中,会看到如下配置:
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Edgware.SR3</version>
<relativePath/>
</parent>
1. Spring Cloud 的多版本:
这么多不同的版本,它们都有什么区别,我们开发微服务到底使用哪一个版本呢?这些版本与 Spring Boot 版本又是一个怎样的依赖关系?带着这些问题,我们必须把它一一搞清楚,不然总会让你很头疼。。
首先 Spring Cloud 是一个由很多子项目组成的庞大项目,Spring Cloud 的主要项目如下:
- Spring Cloud Config
- Spring Cloud Netflix
- Spring Cloud Bus
- Spring Cloud Cluster
- Spring Cloud Security
- ... 更多请参考官方说明:https://projects.spring.io/spring-cloud/
然而,这些子项目都有不同的发布阶段,为了管理主项目和子项目的依赖关系,以及为了避免和子项目版本的冲突和误解,主项目版本命名并没有采用和子项目数字版本化的形式,而是采用了英文名称。
英文命名方式也比较有意思,Spring Cloud 采用了英国伦敦地铁站的名称来命名,并由地铁站名称字母A-Z依次类推的形式来发布迭代版本。
由上可知,Spring Cloud 的第一个版本 "Angel" 就不觉得奇怪了,接着 "Brixton" 就是第二个版本。当一个项目到达发布临界点或者解决了一个严重的BUG后就会发布一个 "service Release" 版本, 简称 SR(X)版本,x 代表一个递增数字。
由此,结合上图我们可以知道: "Finchley M9" 就是目前最新的开发版本,"Edgware SR3" 是最新稳定版本。
2. 多版本关系和依赖:
主项目和子项目版本的依赖关系:
Spring Cloud & Spring Boot 依赖关系:
- 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,但依然能支持 Spring Boot 1.5.x
注意:Brixton 和 Angel 版本在2017年7月已经停止更新迭代了,我们就不关注它的版本依赖关系了。
3. 各版本之间的区别:
开发代号看似没有什么规律,但实际上首字母是有顺序的,比如:Dalston版本,我们可以简称 D 版本,对应的 Edgware 版本我们可以简称 E 版本。
D、E版本:二者均基于SpringBoot的1.5.x版本,但支持其他组件的版本不同,如以 Dalston.SR4 和 Edgware.RELEASE 来对比:
- pring-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;
SNAPSHOT: 小版本,快照版本,随时可能修改;
M: MileStone,小版本,M1表示第1个里程碑版本,一般同时标注PRE,表示预览版版。
SR: Service Release,小版本,SR1表示第1个正式版本,一般同时标注GA:(GenerallyAvailable),表示稳定版本。
4. 版本选择建议:
- 各个版本之间组件变化不大,但细节略有不同,比如配置项名称、或者新版本增加新的配置方式;
- 选择哪个版本都不是大问题,但提醒一下,遇到坑时,最好根据版本进行查询,否则你会发现你找到的办法不行,实际上是版本不匹配;
- 如果你项目需要和其他老项目交叉,以兼容为第一要务;
- 如果全新项目,可以考虑较新版本,稳定的版本,如E版,小编用“Edgware.SR3”;
- 如果你爱好踩坑,追求最新最前端的技术,F版本拿去不谢;
- 小版本没啥可说的,尝鲜:SNAPSHOT,生产:GA。
更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务