从 Spring Cloud 2020.0.0-M1 开始,Spring Cloud 废除了这种英国伦敦地铁站的命名方式,而使用了全新的 "日历化" 版本命名方式。
官宣如下:
https://spring.io/blog/2020/04/17/spring-cloud-2020-0-0-m1-released
什么是日历化版本?
java 框架项目案例 fhadmin.cn 英文名称:Calendar Versioning
日历化版本不是基于任意的数字,而是基于项目的发布日期的版本控制约定,随着时间的推移,版本会越来越好。
这种基于日期的版本命名方式被称为 “日历化版本”(Calendar Versioning), 或者可以简称 CalVer。
详细的介绍参考:
我们来看下 Spring Cloud 是如何开始使用日历化版本的。
Spring Cloud 使用了 YYYY.MINOR.MICRO
的命名规则:
- YYYY:表示 4 位年份;
- MINOR:代表一个递增的数字,每年以 0 开始递增;
-
MICRO:代表版本号后缀,就和之前使用的
.0
类似于.RELEASE
一样,.2
类似于.SR2
。
预发布版本的后缀分隔符也从 .
变更为 -
,如:2020.0.0-M1
和 2020.0.0-RC2
命名所示。
同时,Spring Cloud 将停止给快照版本添加 BUILD-
前缀,如:2020.0.0-SNAPSHOT
命名所示。
但是,英国伦敦地铁站的命名没有彻底废除,Spring Cloud 将继续使用它作为版本代号,当前代号:Ilford
,只是发布到 Maven 仓库的版本将不再使用这些名称。
最后就再来欣赏下 Maven 下的 Spring Cloud 新老版本号命名方式:
老版本命名:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR6</version> <type>pom</type> <scope>runtime</scope> </dependency>
新版本命名:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>2020.0.0-M2</version> <type>pom</type> <scope>runtime</scope> </dependency>
使用日历化版本命名方式,我个人觉得会更方便,可以更清楚的看出当前版本的年份,看到字母、纯数字方式的版本号都不知道自己多久没升级了。