一、数字版本号 – 偷下荤
师傅:徒儿,先从最简单的数字版本号开始,你来说说看Spring Boot2.1.5版本号是什么意思?
徒儿:不就是Spring Boot的版本号是2.1.5的版本嘛,2代表这是第二代的SpringBoot, 1的就是迭代版本,5的话就是bug修复吧??
师傅:嗯嗯,回答的不赖,下面敲重点:
(1)其中2: 表示的主版本号,表示是我们的SpringBoot第二代产品。
(2)其中1: 表示的是次版本号,增加了一些新的功能但是主体的架构是没有变化的,是兼容的。
(3)其中5: 表示的是bug修复版。
(4)所以2.1.5合起来就是springboot的第二代版本的第1个小版本的第5次bug修复版本。
结论:版本格式 -> 主版本号.子版本号.修正版本号。
师傅:徒儿,你知道这个版本号的递增规则不?
悟纤:请师傅赐教。
师傅:容我思考下,怎么跟你说说。
主版本号:当你做了不兼容的 API 修改或者进行了大调整;
子版本号:当你做了向下兼容的功能性新增;
修订号:当你做了向下兼容的问题修正;
所以,我们就可以知道,SpringBoot 1.x的版本和Spring Boot 2.x是无法直接通过修改版本号就可以升级的,但是如果要从2.1.5升级到截止到2020年3月6日的2.2.5版本的话,简单修改下版本就可以成功升级了。
二、尾巴带文字 – 牛逼的一批
师傅:我们会发现在使用版本的时候,还有一个点后缀.RELEASE,这又是什么意思呢?
悟纤:这不就是正式版本嘛。
师傅:那么.SR1、.M1呐?
悟纤:这又是什么幺儿子?
师傅:这个相比上面稍微复杂点,且耐心听为师给你讲。
snapshot 快照
alpha 内测
beta 公测
release 稳定版本
GA 最稳定版本
Final 正式版
Pro(professional) 专业版
Plus 加强版
Retail 零售版
DEMO 演示版
Build 内部标号
Delux 豪华版 (deluxe:豪华的,华丽的)
Corporation或Enterpraise 企业版
M1 M2 M3 M是milestone的简写 里程碑的意思
RC 版本RC:(Release Candidate),几乎就不会加入新的功能了,而主要着重于除错
SR 修正版
Trial 试用版
Shareware 共享版
Full 完全版
师傅:这个名词是多的不得了,这里我们讲几个常见的。
build-snapshot:开发版本,也叫快照版本。当前版本处于开发中,开发完成之后,自己进行测试,另外让团队其它人也进行测试使用下;
M1...M2(Milestone):里程碑版本,在版发布之前 会出几个里程碑的版本。使用snapshot版本开发了一个时间,觉得最近写代码杠杠的,那么就整几个里程碑版本记录下吧,记录我们这个重大的时刻,是你我未来的回忆。
RC1…RC2(Release Candidates):发布候选。内部开发到一定阶段了,各个模块集成后,经过细心的测试整个开发团队觉得软件已经稳定没有问题了,可以对外发行了。
release:正式版本。发布候选差不多之后,那么说明整个框架到了一定的阶段了,可投入市场大面积使用了,那么发布出去,让广大用户来吃吃香吧。
SR1…SR2(Service Release):修正版。这是啥意思呐,这不release版本发布之后,让广大群体使用了嘛,再牛逼的架构师,也无法写出零bug的代码,那么这时候,就优先对于release版本的问题进行修复,这时候每次迭代的版本就是SR1,SR2,SR3。
那么上面的一个顺序是这样子的:
snapshot –>M1…MX –> RC1…RCX –> release –> SR1…SRX
对应的文字理解:
开发版本(BS) --(开发到一个小阶段,就要标记下)--> 里程碑版本(MX) --(版本到了一个相对稳定的阶段,可以对外发行了,但是可能还存在修复的问题,此时只做修复,不做新功能的增加)--> 发布候选(RC1) --(BUG修复完成,发布)-->正式版本(release) --(外界反馈存在一些问题,进行内部在修复)--> 修正版本(SRX)
到这里那么我们经常看到的版本号应该是这样子的:
结论:版本格式-> 主版本号.子版本号.修正版本号.软件版本阶段
。。。。。。。。。。。。。。。。。
版权原因,完整文章,请参考如下:史上讲解最详细:版本号命名的前世今生(Spring Cloud版本命名原来是这么回事)- 值得收藏一生 - 第299篇