天天看點

微服務 Spring Cloud 2020 重大變革

從 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。

詳細的介紹參考:

https://calver.org/

我們來看下 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>      

使用月曆化版本命名方式,我個人覺得會更友善,可以更清楚的看出目前版本的年份,看到字母、純數字方式的版本号都不知道自己多久沒更新了。