一般来说每个软件都有多个版本,如storm有storm-0.5.0、storm-0.6.0、storm-0.7.0、storm-0.8.0等各种版本。下面简述版本管理的相关内容。 一、版本管理的概念。
版本管理与版本控制:版本管理是指项目整体版本的演变过程管理,如从storm-0.5.0 到 storm-0.6.0 再到 storm-0.7.0。版本控制是指借助版本控制工具(如SVN)追踪代码的每一个变更。
一般团队在项目开发的过程中会使用快照(SNAPSHOT)版本。快照版本就是不稳定的,它定位的构件随时可能发生变化。所以当项目需要对外发布时,团队就需要提供稳定的发布版。发布版的下一个就是新的快照版。就这样不断的更新。
版本管理关心的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
之一就是这种快照版和发布版之间的转换。
快照版更新为发布版本需要项目的构建满足4个条件:1.所有自动化测试应当全部通过;2.项目没有配置任何快照版本的依赖;3.项目没有配置任何快照版本的插件;4.项目所包含的代码已经全部提交到版本控制系统中。并且,还要用版本控制工具进行一些操作。更新至发布版本之后,为了确保项目的状态健康要执行一次Maven构建(命令:mvn clean install)。
二、Maven的版本号定义约定。
Maven的版本号定义约定格式:
<主版本>.<次版本>.<增量版本>-<里程碑版本>
如“1.3.4-beta-2”
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示该项目的第一个重大版本的第三个次要版本的第四次增量版本的beta-2里程碑。
主版本表示项目的重大架构变更;此版本号表示较大范围的功能增加和变化,及Bug修复;增量版本一般表示重大Bug的修复;里程碑版本表示一个版本的里程碑。
不是每个版本号都必须要有这四个部分,但主版本和次版本一般都会声明。
三、通过Maven Release Plugin 使版本发布自动化
首先了解主干(trunk)、标签(tag)和分支(branch)的概念。主干是项目开发代码的主体,从项目开始知道当前都处于活动的状态。分支是从主干的某个点分离出来的代码拷贝通常进行重大的Bug的修复或做一些实验性质的开发。标签用来标识主干或分支的某个点的状态。
Maven Release Plugin 能够根据所提供的一些必要信息就可以将版本发布流程自动化。
Maven Release Plugin 的三个目标是:
1.release:prepare (准备版本发布)操作包括:①检查项目是否有未提交的代码;②检查项目是否有快照版本依赖;③根据用户的输入将快照版本升级为发布版;④将POM中的SCM信息更新为标签地址;⑤基于修改后的POM执行Maven构建。⑥提交POM更改;⑦将代码从发布版升级为新的快照版。⑧提交POM变更;
2.release:rollback (回退release:prepare所执行的操作); 3.release:perform (执行版本发布)签出release:prepare生成的标签中的源代码,并在此基础上执行mvn deploy 命令打包并 部署构件至仓库。
要为项目添加正确的版本控制系统信息,才能发布版本,因为Maven Release Plugin 需要知道版本控制系统的主干、标签等地址信息后才能执行相关的操作。
四、通过Maven Release Plugin 使分支创建自动化
使用Maven Release Plugin的 branch 目标,就能自动化下面这些操作:
1.检查本地有无提交代码;
2.为分支更改POM的版本,例如从1.1.0-SNAPSHOT改变成1.1.1-SNAPSHOT;
3.将POM中的SCM信息更新为分支地址;
4.提交以上更改;
5.将主干的代码复制到分支中;
6.修改本地代码使其会退到分支前的版本;
7.提交本地更改。
像版本发布一样,也要在POM中提供正确的SCM信息。此外,由于分支操作会涉及版本控制系统里的分支地址,因此还要为Maven Release Plugin 配置分支基础目录。