SpringBoot 和 Spring Security 各版本号的含义

一、数字版本号:

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 修改或进行了大调整
子版本号 当你做了向下兼容的功能性的增强
修订号 当你做了向下兼容的问题修正

二、文字版本号:

        我们在使用版本的时候发现,好多的版本后面都带一个后缀,比如 .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 版本的问题进行修复,这时候每次迭代的版本就是 SR1SR2SR3

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

        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>

猜你喜欢

转载自blog.csdn.net/xhf852963/article/details/121511149
今日推荐