maven版本管理
版本管理(Version Management): 项目整体版本的演变过程管理.如1.0-SNAPSHOT -> 1.0 -> 1.1-SNAPSHOT
版本控制(Version Control): 指借助版本控制工具(svn,git)追踪代码的每一次变更.
版本管理
发布版(Release): 版本可定位到的唯一构建.
快照(Snapshot): 定位的构建可随时变化的版本
发布版本要求:
- 所有自动化测试应当全部通过
- 项目没有配置任何快照版本的依赖
- 项目没有配置任何快照版本的插件
- 项目所包含的代码已经全部提交到版本控制系统中
版本管理流程:
- 发布快照版本1.0-SNAPSHOT
- 快照版本功能实现,并满足发布版本要求后,生成发布版本1.0
- 打标签关联发布版本与版本控制源码.发布版本应该在版本控制系统中增加标签,进行定位发布版本,便于源码定位以及版本对比,乃至构建重新生成;
- 进入新的快照版本1.1-SNAPSHOT
...
版本号约定:
1.3.4-beta-2
含义:产品的第一个重大版本(1)的第三个次要版本(3)的第四次增量版本(4)的beta-2里程碑
约定格式:
<主版本>.<次版本>.<增量版本>-<里程碑版本>
主版本: 项目的重大架构变更.如jdk8到jdk9
次版本: 较大范围的功能增加和变化及bug修复.但总体架构上变化不大.如jdk9到jdk10
增量版本: (可选)一般表示重大bug的修复.
里程碑版本: (可选)某一个版本的里程碑.这样的版本与正式的版本相比,往往不稳定,还需要很多测试.
版本控制
主干(trunk): 项目开发代码的主体,从项目开始直到当前都处于活动的状态.
分支(branch): 从主干的某个点分离出来的代码拷贝,通常可在不影响主干的前提下,在这里进行重大bug修复,或进行一些实验性的开发.分支开发达到预期,需要合并(merge)到主干中
标签(tag): 用来标识主干或分支的某个点的状态,以代表项目的某个稳定状态,这通常就是版本发布时的状态.
流程自动化
支持自动化发布版本发布
自动化生成分支
自动化生成标签