目录一览
---------------------------------------
- 何为版本管理
- Maven的版本号定义约定
- 主干、标签与分支
- 自动化版本发布
- 自动化创建分支
- GPC签名
-
何为版本管理
区分:版本管理(Version Management)、版本控制(Version Control)
前者,指项目整体版本的演变过程管理,如从1.0-SNAPSHOT到1.0再到
1.1-SNAPSHOT;后者,是指借助版本控制工具追踪代码的每一个变更
快照版和发布版之间的转换是版本管理关心的问题之一
发布版本满足的条件:- 所有自动化测试应当全部通过
- 项目没胡配置任何快照版本的依赖
- 项目没胡配置任何快照版本的插件
- 项目所包含的代码已经全部提交到版本控制系统中
项目发布与标签(Tag)的关系:
版本控制系统记录代码 的每一个变化 ,通常这些变化都被维护在主干(Trunk)中,但是当项目发布的时候 ,开发人员就应该使用标签记录这一特殊的状态。
将项目的快照版本更新至发布版本之后,应当再执行一次Maven构建,以确保项目状态是健康的。然后将这一变更提交到版本控制系统的主干中,接着再为当前主干的状态打上标签。mvn clean install
svn commit pom.xml -m "prepare to release 1.0"
svn copy -m "tag release 1.0" \
https://localhost/account/trunk \
https://localhost/account/tags/1.0至此,一个版本发布的过程完成了,接下来就是更新发布版本至最新的快照版本。 -
Maven的版本号定义约定
例子:1.3.4-beta-2
表示该项目或产品的第一个重大版本的第三个次要版本的第四次增量版本的beta-2的里程碑。
Maven的版本号定义约定:
<主版本>.<次版本>.<增量版本>-<里程碑版本>
主版本:表示项目的重大架构变更
次版本:表示较大范围的功能增加和变化,及Bug修复
增量版本:表示重大Bug的修复
里程碑版本:一个版本的里程碑,与正式版本相比,表示不是非常稳定
不是每个版本号都必须拥有这四个部分,前两个一般声明,后两个不一定
注:Maven对于版本号的排序,对于前3个版本是基于数字排序,对于里程碑版本是基于字符串比较排序的
-
主干、标签与分支
主干(trunk):项目开发代码的主体,是从开始直到当前都处于活动的状态
分支(branch):从主干的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下在这里进行重大Bug修复,或者做一些实验性质的开发。如果分支达到了预期的 目的,通常性在这里的变更会被合并(merge)到主干中。
标签(tag):用来标识主干或者分支的某个点的状态,以代表项目的某个稳定状态,这通常就是版本发布时的状态
参考《Subversion与版本控制》
-
自动化版本发布
使用工具Maven RElease Plugin发布项目版本
三个目标:
release:prepare 执行下列操作
检查项目是否有未提交的代码
检查项目是否有快照版本依赖
根据用户的输入将快照版本升级为发布版
将POM中的SCM信息更新为标签地址
基于修改后的POM执行Maven构建
提交POM更新
基于用户输入为代码打标签
将代码从发布版升级为新的快照版
提交POM变更
release:rollback 回退release:prepare所执行的操作,注:该步不会删除release:prepare生成的标签,需手动删除
release:perform 执行版本发布。签出release:prepare生成的标签中的源代码,并在此基础上执行mvn deploy命令打包并部署构件至仓库。<!-- 为版本发布配置SCM信息 --><scm ><connection> scm:svn:http://localhost /account/trunk</ connection><developerConnection> scm:svn:https://localhost /account/trunk</ developerConnection><url> http://localhost/account/trunk</url ></scm >connection:表示一个只读的scm地址
develperConnection:表示可写的scm地址
url:表示可以在浏览器中访问的scm地址
为了让Maven识别,connection和developerConnection必须以scm开头,冒号之后的部分表示版本控制工具类型
该配置只告诉Maven当前版本的位置(主干),而版本发布还要涉及标签操作,因此还需配置Maven Plugin Release Plugin告诉其标签的基础目录<!-- 配置maven-release-plugin提供标签基础目录 --><plugin><groupId> org.apache.maven.plugins</groupId ><artifactId> maven-release-plugin</artifactId><version> 2.0</version ><configuration><tagBase> https://localhost/account/tags</tagBase ></configuration></plugin>
-
自动化创建分支
a -
GPC签名
a
相关推荐
NULL 博文链接:https://ln-ydc.iteye.com/blog/1825185
解决tomcat8-maven-plugin-3.0-r1655215.jar阿里云同有的问题。放到路径org\apache\tomcat\maven\tomcat8-maven-plugin\3.0-r1655215\就可以了
maven-archetype-quickstart-1.1.jar包下载
maven-deploy-plugin-2.7.jar
maven-site-plugin-3.3.jar
maven-archetype-webapp-1.0.jar,下载,如果有需要的同志可以自己下载,。
maven-jar-plugin-3.1.1.jar
maven-resources-plugin-2.4.1.jar
maven-deploy-plugin-2.8.2.jar
maven资源 apache-maven-3.3.9-bin.zip
maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样的jdk版本编译的话,它就会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。...
Maven3实战笔记04——Maven的生命周期和插件。
jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-...
maven-notice-plugin-1.0.1.jar
maven-install-plugin-2.5.2.jar
解决Unable to create project from archetype [org.apache.maven.archetypes:maven-archetype-quickstart:1.1] 1. 下载maven-archetype-quickstart-1.1.jar 文件地址: 2.cmd窗口执行mvn install:install-file -...
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project
新建maven项目失败,不能下载maven-archetype-webapp-1.0.jar包
maven-repository-metadata-3.0.jar
maven-surefire-plugin-2.22.1.jar