SpringBoot 和 SpringCloud 各版本号的含义

一、数字版本号

1.1 含义

        以 Spring Boot 2.1.5 为例,含义分别是:版本 -> 主版本号 .子版本号.修正版本号。具体解释如下所示:

        a、2 表示主版本号,表示是我们的 Spring Boot 代产品。

        b、1 表示次版本号,增加了一些新的功能但是主体的架构是没有变化的,是兼容的。

        c、5 表示的是 bug 修复版本。

        d、所以 Spring Boot 2.1.5 合起来就是 Spring Boot第二代版本的第一个小版本的第五次 bug 修复版本

1.2 递增规则

        通过上面的解释,我们可以知道,SpringBoot 1.x 的版本和 SpringBoot 2.x 的版本是无法直接通过版本号就可以升级的,但是如果想要从 2.1.5 版本升级到 2.2.6 版本的话,简单修改下版本就可以成功升级了。

类型

解释

主版本号当你做了不兼容的 API 修改或进行了大调整
子版本号当你做了向下兼容的功能性的增强
修订号当你做了向下兼容的问题修正

二、文字版本号

2.1 简介

        我们在使用版本的时候发现,好多的版本后面都带一个后缀,比如 .RELEASE ,这又是什么意思呢?我们整理一下可能遇到的后缀信息和解释,如下所示:

含义

解释

snapshot快照
alpha内测
beta公测
release稳定版本
GA最稳定版本
Final正式版
Pro(professional)专业版
Plus加强版
Retail零售版
Demo演示版
Build内部标号
Delux豪华版
Corporation 或 Enterpraise企业版
M1、M2、M3里程碑
RC几乎就不会加入新的功能了,而主要注重于除错。
SR修正版
Trial试用版
Shareware共享版
Full完全版

        下面说几个常用的名词解释:

含义

解释

build - snapshot开发版本,也叫快照版本。当前版本处于开发中,开发完成之后,自己进行测试,另外让团队其他人也进行测试试用下。
M1 .... M2里程碑版本,在版本发布之前,会出现几个里程碑的版本。使用 snapshot 版本开发了一个时间,觉得最近写代码写的不错,那就设置几个里程碑记录下吧!记录这个重大的时刻。
RC1 .... RC2发布候选。内部开发到一定阶段了,各个模块继承后,经过细心的测试整个开发团队觉得软件已经稳定没有问题了,可以对外发行了。
release正式版本。发布候选差不多之后,那么说明整个框架到了一定的阶段了,可投入市场大面积使用了,那就发布出去,让大家都用用。
SR1 .... SR2修正版。当正式版本发布后,用户发现问题,架构师对这些 bug 进行修复,即对 release 版本的问题进行修复,这时候每次迭代的版本就是 SR1,SR2,SR3。

2.2 总结

根据上面的解释,整个版本的发布顺序为:

        1、snapshot:开发版本(BS),开发到一个小阶段,就要标记下。

        2、M1 .... MX:里程碑版本(MX),版本到了一个相对稳定的阶段,可以对外发行了,但是可能还存在修复的问题,此时只做修复,不做新功能的开发。

        3、RC1 ....RCX:发布候选(RC1),bug 修复完成,发布。

        4、release:正式版本(release),外界反馈存在一些问题,进行内部再修复。

        5、SR1 .... SRX: 修正版本(SRX)。

        截至到目前为止,我们可以看到的版本号应该是这个样子:版本格式 -> 主版本号.子版本号.修正版号.软件版本阶段

三、英文标识

        我们经常在网站上发现些标着 CURRENTPRE 等等的标识,这些又是什么意思呢?如下所示:

含义

解释

CURRENT当前推荐的版本
GA稳定版,可用于生产
PRE里程碑版 / 预览版本
SNAPSHOT快照

        这里只是一个标识,方便大家在使用的时候选择版本,我们一般的选择是 CURRENTGA 版本, SNAPSHOT 打死不能选。

四、Spring Cloud 版本说明

        spring cloud 的发布版本是以伦敦地铁作为版本命名,并按照地铁站的首字母 A - Z 依次命名。如下所示,但是在 2020 年,又改为了日历化版本这里不做过多的介绍。

含义

解释

Angle第一代版本
Brixton第二代版本
Camden第三代版本
Dalston第四代版本
Edgware第五代版本
Finchley第六代版本
GreenWich第七代版本
Hoxton第八代版本

        为什么我们的 spring cloud 会以这种方式来发布版本?因为假如我们发布的是传统的版本如 2.1.5.release spring cloud 会包含很多子项目的版本就会给人造成混乱。

        我们可以这么理解,使用英文版本的命名方式,就是为了统一管理 spring cloud 下的子项目版本集合。否则会造成版本混乱。

五、举例

5.1 spring boot 版本真相

        今天是 2021 年 11 月 24 日,我们进入到 spring boot 官网上,查看目前最新的 spring boot 的版本信息,如下图所示:

5.1.1 2.6.0 CURRENT GA 

        其中 2.6.0 表示的意思是这是第二代 spring boot 的第 6 个小版本的第 0 bug 修复。CURRENT 的意思是这是官网推荐使用的版本GA 的意思是这是稳定版本,可用于生产环境。

        那么该如何引入到我们的生产环境中呢?只需要配置如下依赖即可:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.0.RELEASE</version>
</parent>

        我们通过观察可以发现,在引入的依赖中,并没有 CURRENTGA ,这两个标签就是告知我们这些使用 spring boot 的人:spring boot 2.6.0 版本现在是一个稳定的版本(GA),可用于生产环境了,官网大力推荐进行使用。

5.1.2 2.6.1-SNAPSHOT

        其中的 2.6.1 表示的意思是这是第二代 spring boot 的第 6 个小版本的第 1 bug 修复。SNAPSHOT 的意思是这是我们内部在开发的一个版本,也是对于 2.6.0 版本的 bug 迭代版本。

        那么该如何引入到我们的生产环境中呢?只需要配置如下依赖即可:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.1.BUILD-SNAPSHOT</version>
</parent>

5.1.3 2.5.7 GA

        其中的 2.5.7 表示的意思是这是第二代 spring boot 的第 5 个小版本的第 7 次 bug 修复。GA 的意思是这是稳定版本,可用于生产。

        2.5.72.6.0 版本差别在于 2.6.0 多了一个 CURRENT 标识,说明官方更推荐 2.6.0 版本,如果你当前使用的是 2.5.7 版本的话,也是稳定的版本,官网也在修复此版本存在的问题。

        那么该如何引入到我们的生产环境中呢?只需要配置如下依赖即可:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.7.RELEASE</version>
</parent>

5.1.4 2.3.0 M2 PRE

         再拓展一个上面官网没有的版本,可实际我们可能用得上的版本,其中的 2.3.0 表示的意思是这是第spring boot 的第 3 个小版本的第 0 次 bug 修复。M2 的意思是这是 2.3.0 版本的第二次里程碑版本PRE 的意思是里程碑版本 / 预览版本,告知我们这是个里程碑版本,喜欢尝试的人可以先来。

        那么该如何引入到我们的生产环境中呢?只需要配置如下依赖即可:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.0.M2</version>
</parent>

        我们曾经说过,里程碑版本是记录内部开发的版本,所以,如果是上面这么引入的话,是无法使用的,因为还未发布到官网上,那么现在使用的话,需要添加仓库,如下所示:

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>https://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

5.2 spring cloud 版本真相

         今天是 2021 年 11 月 24 日,我们进入到 spring cloud 官网上,查看目前最新的 spring cloud 的版本信息,如下图所示:

5.2.1 2020.0.4 CURRENT GA

        2020.0.4 的意思是这是 spring cloud 2020 年第 0 个小版本的第 4bug 修复版本,CURRENT 的意思是这是官网推荐使用的版本。GA 的意思是这是稳定版本,可用于生产环境。

        那么该如何引入到我们的生产环境中呢?只需要配置如下依赖即可:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>2020.0.4</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

5.2.2 2021.0.0-SNAPSHOT

        2021.0.0 的意思是这是 spring cloud 2021 年第 0 个小版本的第 0 次 bug 修复版本,

SNAPSHOT 的意思是这是我们内部在开发的一个版本。

        那么该如何引入到我们的生产环境中呢?只需要配置如下依赖即可:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>2021.0.0-SNAPSHOT</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

        由于这个也是未发布版本,也需要添加相同的仓库,如下所示: 

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>https://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

5.2.3 2021.0.0-RC1 PRE

        2021.0.0 的意思是这是 spring cloud 2021 年第 0 个小版本的第 0 次 bug 修复版本,

        RC1 的意思是这是我们布候选的一个版本。PRE 的意思是程碑版本 / 预览版本,告知我们这是个里程碑版本,喜欢尝试的人可以先来。

        那么该如何引入到我们的生产环境中呢?需要配置如下依赖:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2021.0.0-RC1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-otel-dependencies</artifactId>				
            <version>1.0.0-M1</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

        由于这个也是未发布版本,也需要添加相同的仓库,如下所示: 

        <repositories>
			<repository>
				<id>spring-snapshots</id>
				<url>https://repo.spring.io/snapshot</url>
				<snapshots><enabled>true</enabled></snapshots>
			</repository>
			<repository>
				<id>spring-milestones</id>
				<url>https://repo.spring.io/milestone</url>
			</repository>
		</repositories>
		<pluginRepositories>
			<pluginRepository>
				<id>spring-snapshots</id>
				<url>https://repo.spring.io/snapshot</url>
			</pluginRepository>
			<pluginRepository>
				<id>spring-milestones</id>
				<url>https://repo.spring.io/milestone</url>
			</pluginRepository>
		</pluginRepositories>

5.2.4 Hoxton.SR12 GA

        Honton 的意思是这是第八代 spring cloud 版本,SR12 表示这是修正版本,修正了 12 次,说明 release 之后,进行了 12 次的问题修复。GA 的意思是这是稳定版本,可用于生产。

        那么该如何引入到我们的生产环境中呢?只需要配置如下依赖即可:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Hoxton.SR12</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐的小三菊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值