maven的版本管理笔记
1. 版本管理
(1) 快照版本对应了项目的开发过程,往往对应了很长的时间;发布版本对应了项目的发布,因此仅仅代表某个时刻项目的状态。
(2) 理想的发布版本应当对应项目某个时刻比较稳定的状态,包括源代码的状态以及构建的状态,因此这个时候的项目的构建应当满足以下几个条件:
- 所有自动化测试应当全部通过;
- 项目没有配置任何快照版本的依赖;
- 项目没有配置任何快照版本的插件;
- 项目所包含的代码已经全部提交到版本控制系统中。
(3) 项目的快照版本更新至发布版本之后,应当再执行一次Maven构建并将源代码打上标签,以便将此版本的项目状态记录在版本控制系统中。
2. Maven的版本号定义约定
(1) 看一个实例:
1.3.4-beta-2
这往往表示该项目或产品的第一个重大版本的第三个次要版本的第四次增量版本的beta-2里程碑。
(2) Maven的版本号定义约定: <主版本>.<次版本>.<增量版本>-<里程碑版本>
- 主版本:表示了项目的重大架构变更。例如Maven3和Maven2相去甚远;
- 次版本:表示较大范围的功能的增加和变化,及BUG的修复;
- 增量版本:一般表示重大BUG的修复,例如项目发布了1.5.0版本之后,发现了一个影响功能的重大bug,则应该快速发布一个修复了BUG的1.5.1版本。
- 里程碑版本:往往指一个版本的里程碑,这样的版本与正式的发布版本相比,往往表示不是非常的稳定,还需要很多测试。
(3) 不是每个版本号都需要这四个部分,一般来说,主版本和次版本都会声明,但增量版本和里程碑就不一定。
3. 自动化版本发布
下面介绍使用Maven Release Plugin发布项目版本。
(1) Maven Release Plugin主要有三个目标:
- release:prepare 主板版本发布,它依次执行下列操作
- 检查项目是否有未提交的代码
- 检查项目是否有快照版本依赖
- 根据用户的输入将快照版本升级为发布版
- 将POM中的SCM信息更新为标签地址
- 基于修改后的POM执行Maven构建
- 提交POM变更
- 基于用户输入为代码打标签
- 将代码从发布版升级为新的快照版
- 提交POM变更
- release:roolback 回退release:prepare所执行的操作。将POM回退到release:prepare之前的状态并提交。需要注意,该步骤不会上床release:prepare生成的标签,需要手动删除。
- release:perform 执行版本发布。签出release:prepare生成的标签中的源代码,并在此基础上执行mvn deploy命令打包并部署构建至仓库。
- release:prepare 主板版本发布,它依次执行下列操作
maven的版本管理笔记的更多相关文章
- Maven基础学习笔记
Maven基础学习笔记 下载链接 官网:https://maven.apache.org/ 所有版本:https://archive.apache.org/dist/maven/maven-3/ 阿里 ...
- Maven:版本管理 【SNAPSHOT】【Release】【maven-release-plugin】【nexus】
什么是版本管理 首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基本用 ...
- 《Maven实战》笔记-10-灵活的构建
一.灵活构建的意义 一个优秀的构建系统必须足够灵活,它应该能够让项目在不同的环境下都能成功地构建.例如,典型的项目都会有开发环境.测试环境和产品环境,这些环境的数据库配置不尽相同,那么项目构建的时候就 ...
- 《Maven实战》笔记-8-构建部署Web项目
一.Web项目结构 1.显式指定Web项目打包方式为war: 2.默认目录 根据“约定大于配置”的规则,Web项目的类及资源文件默认位置为src/main/java和src/main/reso ...
- 《Maven实战》笔记-9-版本管理
一.理想的发布版本,在项目构建时需要满足以下条件: 1.所有自动化测试应当全部通过: 2.项目没有配置任何快照版本的依赖: 3.项目没有任何快照版本的插件: 4.项目所包含的代码已经全部提交到版本控制 ...
- 《Maven实战》笔记-7-持续集成
一.持续集成的步骤: 1.持续编译 2.持续数据库集成 3.持续测试 4.持续审查 5.持续部署 6.持续反馈 二.持续集成工具——Hudson 1.安装Hudson 2.准备Subversion ...
- 《Maven实战》笔记-6-maven测试
一.基于Maven的测试 1.maven-surefire-plugin插件 该插件的test目标会自动执行测试源码路径(默认src/test/java)下符合以下命名模式的测试类: 以Test开头或 ...
- 《Maven实战》笔记-4-生命周期和插件
除了坐标.依赖以及仓库外,Maven另外两个核心概念是生命周期和插件. 一.生命周期 Maven的生命周期是抽象的,其本身不做任务实际的工作,实际的任务(如编译源代码)都交由插件来完成. 三套生命周期 ...
- 《Maven实战》笔记-5-pom聚合和继承
一.聚合 假设有两个模块:account-email和account-persist: 能够使用一条命令就能构建上述两个模块,需要创建一个额外的模块:account-aggregator: 通过acc ...
随机推荐
- RESRful API 和 HTTP状态码
一.RESRful API: GET(SELECT):从服务器取出资源(一项或多项). POST(CREATE):在服务器新建一个资源. PUT(UPDATE):在服务器更新资源(客户端提供改变后的完 ...
- (转)C# wnform 请求http ( get , post 两种方式 )
本文转载自:http://www.cnblogs.com/hailexuexi/archive/2011/03/04/1970926.html 1.Get请求 string strURL = &quo ...
- Linux下的NTP
一.电脑时间的误差众 所周知,电脑主机的时间是根据电脑晶振以固定频率振荡,从而产生的.由于晶振的不同,会导致电脑时间与UTC时间 (全球标准时间:全球标准时间指的是由世界时间标准设定的时间.原先也被称 ...
- ulipad 常用快捷键
快捷键名称 对应功能 F1 (M)UliPad Help Document(帮助文档) F2 (M)Directory Browser(目录浏览)(3.1版新增) F3 (M)Find Next(查找 ...
- 138. Copy List with Random Pointer
A linked list is given such that each node contains an additional random pointer which could point t ...
- Chrome开发者工具详解(2)
Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Network面板.Timeline面板.Profiles面板.Application面板.Sec ...
- DBA_Oracle Event等待事件分析(概念)
2014-12-18 Created By BaoXinjian
- BEvent_客制化BusinessEvent通过Workflow Event接受消息传递(案例)
2014-08-03 Created By BaoXinjian
- HDU 5701 中位数计数
这题真的很恶心,做了一天,最后问学长,才懂题意是什么,原来我一直都没读懂题.这我真的就无语了,你的题意多两句话会死啊?你测试样例多两个例子就不行啊?真蛋疼,题意都不懂,还做个shi? 题里说的是区间, ...
- 关于GameObject.activeInHierarchy,activeSelf,SetActive
activeSelf(read only只读):物体本身的active状态,对应于其在inspector中的checkbox是否被勾选activeInHierarchy(read only只读):物体 ...