【发布时间】:2020-11-01 02:47:12
【问题描述】:
我已经做了一段时间了,这是当前的场景:
- 我有一个开发分支,在每次推送后,我想将我当前的 maven 库发布为 SNAPSHOT。我目前通过使用 exec-plugin 和 echo 来检索我的 maven 版本(例如:-Dexec.executable=echo -Dexec.args='${project.version}' org.codehaus.mojo:exec-maven-plugin: 1.6.0:执行))
- 然后我使用 update-versions 命令将“-SNAPSHOT”注入其中并发布(我不将其发布回分支,因为我真的不想保留“-SNAPSHOT”)。
对于发布,我想我可以在检索版本的地方做类似的事情,然后找出增加它的方法 -> 发布回当前活动的分支 -> 最后进行部署。现在,我采用了一种稍微容易一些但容易出错的方法:我尝试获取我们使用的工件中设置的当前版本,如果它存在,我会通过一条消息指出该版本已经存在而使管道失败。现在不是很好,因为我实际上在这里反转了一个错误条件,所以如果 maven 由于任何其他原因失败,它实际上假设该版本不存在并继续进行下一步。呃。
现在,我在这里寻找的要点实际上是围绕处理 maven 项目和版本控制的最佳方法。理想情况下,我的目标是:
- 能够以 SNAPSHOT 的形式正确发布某些内容(也许不必求助于 maven-exec)?
- 能够逐步更新我的版本,这样用户就不必经常更新他们的版本了吗?当然,这个过程必须确保我不会将可能有错误版本的东西推送到 master(然后在部署时会失败)。编辑:换句话说,这里的意图不仅仅是将版本增加到“下一个”,而是增加到“下一个可用的”,确保我不会尝试合并以前发布的版本。李>
我确实有一个限制:我们使用的工具不允许我们拥有合并挂钩(Azure DevOps 和 Azure Git)。这意味着我们仅限于拉动(和 PR)以及 PR 合并后的管道。
我很高兴在这里实际采取任何其他方法,我觉得我正在竭尽全力做出一些现在应该有明确路径的东西,所以我希望有人在这里提供一些指导。
【问题讨论】:
标签: git maven continuous-integration