【问题标题】:Artifacts name should be suffixed with alpha, beta, rc工件名称应以 alpha、beta、rc 为后缀
【发布时间】:2018-07-18 16:33:12
【问题描述】:
当由feature/*、develop、release/* 分支构建时,我希望我的工件以alpha、beta、rc 为后缀。 pom 文件中的版本不应更改。
我尝试了多个 Maven 插件,但找不到确切的解决方案。所有需要 pom 文件中的版本的插件都应更改为 alpha 或 beta 或 rc 但这会导致合并时发生冲突。
还有其他简单的解决方案或建议来解决这个问题吗?
谢谢。
【问题讨论】:
标签:
maven
alpha
beta
artifacts
rc
【解决方案1】:
为什么不直接使用version set:
我假设你正在使用像 Jenkins 这样的 CI。
- 在您的 Jenkins 中创建 3 个参数(一个用于您的分支:
feature、develop 或 release),一个用于所需版本,一个用于您的 NEXT 版本。 (当然你的方法可以不同)。
- 克隆您的存储库和您指定为参数的分支。
- 基于您定义的参数
alpha、beta 或rc。
您可以在某种脚本中检查3.。例如:checkout分支发布时,设置环境变量CANDIDATE值为rc。
mvn -q -f ${POMPATH} versions:set -DnewVersion=${CANDIDATE}-${VERSION};
如果您选择release 分支且版本为1.2.0,则您的pom 中的所有版本都将设置在rc-1.2.0。
构建您的工件并将它们推送到您的关系或 Artifactory(或类似的东西)。之后只需执行一个新的version set 而不对之前的更改进行提交,并且只设置$NEXTVERSION 而没有CANDIDATE 部分。
您的工件将具有名称,取决于构建它们的分支,但不会在分支上产生冲突。
当然有很多方法,我并不是说你必须使用这种工作方式,但我希望它在某种程度上对你有用。