Maven2有版本2.0.9、2.0.10等各个版本,Maven3有3.0-alpha-1、3.0-beta-1等版本,这些版本中的每个数字代表了什么意思?alpha、beta是什么意思?快照版本和发布版本的区别是什么?如何科学的管理项目版本。
Maven的版本号定义约定
<主版本>.<次版本>.<增量版本>-<里程碑版本>
示例:1.3.5-beta-2
“1”:表示该版本是第一个重大版本
“3”:表示这是基于重大版本的第三个次要版本
“5”:表示该次要版本的第五个增量版本
“beta-2”:表示增量的一个里程碑版本
自动化版本发布
Maven Release Plugin提供这样的功能,主要有三个目标:
- release:prepare 准备版本发布,依次执行下列操作。
代码有未提交
是否有快照版本依赖
根据用户输入让快照版本升级为发布版本
将POM中的SCM信息更新为标签地址
基于修改后的POM执行Maven构建
提交POM变更
基于用户输入为代码打标签
将代码从发布版本升级为新的快照版本
提价POM变更 - release:rollback
回退release:prepare所执行的操作。将POM回退至release:prepare之前的状态,并提交。需要注意的是,该步骤不会删除release:prepare生成的标签,需要手工删除 - release:perform
执行版本发布。签出release:prepare生成的标签中的源代码,并在此基础上执行mvn deploy命令打包并部署构建至仓库。
GPG签名
当从中央仓库下载第三方构建的时候,可能会想要验证这些文件的合法性。例如它是由开源项目官方发布的,并且没有被篡改过。
GPG(Pretty Good Privacy)就是这样一个用来提高安全性的技术。PGP最常用来给电子邮件进行加密、解密以及提供签名,以提高电子邮件交流的安全性。
GnuPG(简称GPG,官网地址http://www.gnupg.org/)是PGP标准的一个免费实现。GPG能够帮助我们为文件生成签名、管理密钥以及验证签名等。