框架版本号定义
作者:程序员马丁
note
热门项目实战社群,收获国内众多知名公司面试青睐,近千名同学面试成功!助力你在校招或社招上拿个offer。
什么是版本号
版本号(Version Number)是用于标识软件版本的重要标记。
在开发基础组件或开源框架时,合理定义版本号尤为关键。它不仅能帮助用户判断所使用的版本是否为最新,还能明确该版本所具备的功能和稳定性。
版本号状态说明
1. SNAPSHOT(快照版)
用于开发阶段,通常表示功能尚未完成,或存在较多 Bug,仅供开发者使用。不建议在测试或生产环境中使用。
2. alpha(内部测试版)
初步实现的版本,主要用于开发团队内部验证,或小范围提供给专业测试人员。该阶段的 Bug 较多,不适合生产环境部署。
3. beta(外部测试版)
相较于 alpha 版本,已修复大部分严重 Bug,但可能仍存在部分缺陷。通常通过更广泛的测试反馈进行进一步完善,仍不推荐用于生产环境。
4. RC(Release Candidate,预发布版)
接近最终发布版本,功能完整,Bug 稳定,除非发现重大问题,否则将作为最终版发布。已基本可用于验收测试。
5. RELEASE(正式发行版)
即最终稳定版本,经过多个测试阶段,功能完整且稳定。可安全用于生产环境。
6. upgrade(升级版)
在不发布 下一个主/子版本的前提下,对当前 RELEASE 版本进行的功能增强或 Bug 修复,适用于紧急补丁或重要增强。
版本号命名规则
版本号由三段组成:
主版本号 . 子版本号 . 修订版本号
Major.Minor.Revision
各部分含义:
- 主版本号(Major): 项目发生重大变化或架构调整时递增,表示不兼容的 API 变更。
- 子版本号(Minor): 新增功能,但保持兼容性时递增。每次子版本号变更时,修订号归零。
- 修订版本号(Revision): 用于小范围的 Bug 修复或微调,主版本号 与子版本号保持不变。
正常版本演进示例
版本号还可以带上“状态后缀”,完整的迭代可能如下:
1.2.6-SNAPSHOT
1.2.6-alpha
1.2.6-alpha.2
(可选,用于多次发布 alpha)1.2.6-beta
1.2.6-beta.2
1.2.6-RC
1.2.6-RC.2
1.2.6.RELEASE
1.2.6-upgrade
常见版本号相关问答
1. RELEASE 是必须加在版本号后面的吗?
不是必须的。在 Spring Boot 早期版本中(如 1.x),通常会显式加上 RELEASE
后缀;而从 2.x 起,正式版本通常直接使用形如 2.7.5
的形式,不再附加 RELEASE
。
2. 为什么有些版本状态是大写,有些是小写?
这是出于行业习惯的统一。从主流开源框架(如 Spring、Maven 等)来看,SNAPSHOT
、RC
和 RELEASE
通常使用大写,而 alpha
、beta
多使用小写,这种风格也逐渐成为事实标准。
3. 为什么版本状态前有时用 -
,有时用 .
分隔?
这是参考 Spring Boot 的版本命名规范:
- 当版本状态为
RELEASE
时,一般使用.
作为分隔符,例如:1.2.6.RELEASE
; - 当省略
RELEASE
或使用其他状态(如beta
、RC
等)时,通常使用-
作为分隔符,例如:1.2.6-RC
、1.2.6-beta
。