【发布时间】:2014-08-15 10:50:33
【问题描述】:
想知道人们如何通过 DEV - AQA - CQA - RELEASE 等环境生命周期来管理他们的项目工件,以及是否有一些最佳实践可供遵循。
我使用 Jenkins 构建服务器来构建我的项目(代码签出然后 maven 构建)。我的人工制品都有 1.0.0-SNAPSHOT 版本,并发布到构建服务器上的本地 .m2 存储库。还有一些 Jenkins 作业使用这些人工制品重建 DEV 系统(在同一台服务器上)。每当有人签入代码时,项目构建都是自动化的。 DEV 构建每晚自动进行。
在某个时候,我的首席开发人员确定我们的项目适合进入 AQA(不同服务器上的第一级测试环境)。
为此,我需要将人工制品标记为版本 1.0.0-1 并发布到远程 AQA 存储库(它实际上是一个 Nexus 存储库)。
Maven 部署插件听起来是正确的方法,但是如何将版本号更改为有效的 1.0.0-$release(其中 $release 只是从 1 开始的递增数字)? Maven/Nexus 是否能够管理 $release 的值,或者我是否需要在我的项目中使用一个简单的属性文件来存储/更新上次使用的 $release。
此外,有人测试 AQA 并确定其适合继续使用 CQA(第二个测试环境)。这是“提升到 AQA”。所以我的要求是从 AQA Nexus 存储库复制工件并发布到 CQA Nexus 存储库。
同样,在 CQA 之后,也会有一个“升级到 RELEASE”的工作。
我认为版本值在“升级”阶段保持不变。我希望 AQA repo 能看到所有版本 1-50,但 CQA 只有 25 和 50,然后 RELEASE 只有 50,例如。
我可以找到大量关于 Maven 插件/目标/阶段的信息,但很少有关于在直接开发环境之外如何或在何处使用的规定方法。
任何建议都非常感谢。
【问题讨论】: