gpt4 book ai didi

git - 是否有自动增加 Maven 版本的好方法

转载 作者:行者123 更新时间:2023-12-04 00:55:28 24 4
gpt4 key购买 nike

我已经这样做了一段时间,这是当前的情况:

  • 我有一个开发分支,在每次推送后,我想将我当前的 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”注入(inject)并发布(我不将其发布回分支,因为我真的不想保留“-SNAPSHOT”)。

  • 对于发布,我想我可以在检索版本的地方做类似的事情,然后想办法增加它 -> 发布回当前事件的分支 -> 最后进行部署。现在,我采用了一种稍微容易一些但容易出错的方法:我尝试获取我们使用的 Artifact 中设置的当前版本,如果它存在,我会通过一条消息指出该版本已经存在而使管道失败。现在不是很好,因为我实际上在这里反转了一个错误条件,所以如果 maven 由于任何其他原因失败,它实际上假设该版本不存在并继续进行下一步。啊。
    现在,我在这里寻找的 Gist 实际上是处理 maven 项目和版本控制的最佳方法。理想情况下,我的目标是:
  • 能够以 SNAPSHOT 的形式正确发布一些东西(也许不必求助于 maven-exec)?
  • 能够逐步更新我的版本,因此用户不必经常更新他们的版本?当然,这个过程必须确保我不会将可能有错误版本的东西推送到 master(然后在部署时会失败)。编辑:换种说法,这里的意图不仅仅是将版本增加到“下一个”,而是“下一个可用的”,确保我不会尝试 merge 以前发布的版本。

  • 我确实有一个限制:我们使用的工具不允许我们使用 merge Hook (Azure DevOps 和 Azure Git)。这意味着我们仅限于 pull (和 PR)以及 PR merge 后的管道。
    我很高兴在这里实际采取任何其他方法,我觉得我正在竭尽全力做出一些现在应该有明确路径的东西,所以我希望有人在这里提供一些指导。

    最佳答案

    @davidxxx 答案的补充。
    build-helper maven 插件的使用可以改善:

    mvn build-helper:parse-version versions:set \
    -DnewVersion=\${parsedVersion.nextMajorVersion}.0.0 \
    versions:commit
    或像这样:
    mvn build-helper:parse-version versions:set \
    - DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.nextMinorVersion}.0 \
    versions:commit
    没有任何 sed 等更多细节:
  • https://www.mojohaus.org/build-helper-maven-plugin/parse-version-mojo.html
  • 关于git - 是否有自动增加 Maven 版本的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62849887/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com