Spring Cloud 版本
Spring Cloud 包含了许多子项目(组件),这些子项目都是独立进行内容更新和迭代的,各自都维护着自己的发布版本号。
为了避免 Spring Cloud 的版本号与其子项目的版本号混淆,Spring Cloud 没有采用常见的数字版本号,而是通过以下方式定义版本信息。
{version.name} .{version.number}
Spring Cloud 版本信息说明如下:
- version.name:版本名,采用英国伦敦地铁站的站名来命名,并按照字母表的顺序(即从 A 到 Z)来对应 Spring Cloud 的版本发布顺序,例如第一个版本为 Angel,第二个版本为 Brixton(英国地名),然后依次是 Camden、Dalston、Edgware、Finchley、Greenwich、Hoxton 等。
- version.number:版本号,每一个版本的 Spring Cloud 在更新内容积累到一定的量级或有重大 BUG 修复时,就会发布一个“service releases”版本,简称 SRX 版本,其中 X 为一个递增的数字,例如 Hoxton.SR8 就表示 Hoxton 的第 8 个 Release 版本。
2020年开始版本号发生重大变化
Spring Cloud 版本重大变革,变更了版本号的命名方式。
从 Spring Cloud 2020.0.0-M1 开始,Spring Cloud 废除了这种英国伦敦地铁站的命名方式,而使用了全新的 “日历化” 版本命名方式。
为什么要改呢?
主要原因:Spring Cloud 推广不力,固然有自身复杂的原因,版本号太复杂也是一个坑。
改了后有什么好处呢?
让用户有升级的动力
比如 Spring 2.5.6 版本,大部分开发都知道它是比较旧的依赖,但不会有太大的动力去管。
但是如果你说,这是 12 年前的代码(绝大部分开发还没毕业),那么开发人员就知道很容易会出现不兼容的问题,他自己就知道应该要升级了。
以时间为版本号,既是对用户的承诺,也是对开发者自己的鞭策。