【发布时间】:2015-06-06 13:41:14
【问题描述】:
我有一个 Java 项目。有些部分是jar 文件,有些是war 文件。我还有 Jenkins 和 Nexus Pro,当团队中的开发人员提交 SVN 时,Jenkins 构建会自动启动。
使用 Maven 版本插件,我可以 mvn versions:set -DnewVersion=1.0.$SVN_REVISION 作为预构建步骤,然后 mvn clean test deploy。在此过程结束时,我已将 my-artifact-1.0.1234.jar 上传到我的 Nexus Pro 暂存存储库。
由于我们在 CI 类型的环境中工作,我们可能有一百个(或更多)暂存版本。时机成熟时,QA 团队希望将某个构建提升到“以后”的环境(想想 QA、SIT 或其他什么。这里的环境更像是一种锁定状态。)
我想要的工作流程是这样的:
- 有人决定将 Build 1.0.1357 升级为 QA
- 他们进入 Jenkins,进入“提升为 QA”的工作
- 他们会在下拉列表中看到 Nexus Staging Repository 中所有可能构建的列表。他们选择一个,然后点击“运行”按钮。
- 该工件从 Nexus Staging “发布”到 Nexus Releases,并进一步部署到 QA 环境。 (我并不关心“并部署到 QA”部分——我已经知道如何做到这一点。为了我的故事的完整性,将其包含在此处。)
我已经知道我可以从命令行执行此操作,并且它正在工作:
mvn nexus-staging:rc-list -DserverId=nexus -DnexusUrl=http://my.nexus.ip:8081/nexus
mvn nexus-staging:rc-release -DserverId=nexus -DnexusUrl=http://my.nexus.ip:8081/nexus -DstagingRepositoryId=abcd-1000 -Ddescription="Release from CLI."
我遇到的问题是您必须在命令行上指定stagingRepositoryId。我该怎么做呢?
【问题讨论】:
-
请注意:我不想使用 SNAPSHOT。