gpt4 book ai didi

java - 如何防止在 maven-release-plugin 中推送 SNAPSHOT 版本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:55 27 4
gpt4 key购买 nike

我有一个包含很多模块(以及模块中的模块)的 Maven 项目。我正在使用 ma​​ven-release-plugin 来控制 pom.xml 文件中的版本。

运行命令时mvn release:prepare插件正在推送两个带有消息的提交:[maven-release-plugin] prepare release v0.9.0.38""[maven-release-plugin] prepare for next development iteration" 相应地。这里的第二个只是快照版本。

这里是 ma​​ven-release-plugin 设置:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>

<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
<autoVersionSubmodules>true</autoVersionSubmodules>
<checkModificationExcludes>
<checkModificationExclude>pom.xml</checkModificationExclude>
<checkModificationExclude>*/pom.xml</checkModificationExclude>
</checkModificationExcludes>
<branchBase>master</branchBase>
</configuration>
</plugin>
</plugins>
</build>

推送时我也将标签设置为远程 git 项目(您可以在 <tagNameFormat>v@{project.version}</tagNameFormat> 中看到它)所以我确实需要推送提交,但我不希望它推送快照版本(例如 0.9. 0.38-快照)。

编辑:

问题:

因为我通过运行
在每次提交时递增项目的次要版本 mvn release:prepare .
例如提交如下所示:

[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] prepare release v0.9.0.38
(refactor) Code cleaned up
[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] prepare release v0.9.0.37
(feature) Added I18N support

这看起来非常丑陋,并且在每次更改时推送三个提交是非常糟糕的解决方案,仅用于增加 pom 文件的次要版本而不是手动。

我需要什么?

  • 在每次提交增量项目版本(包括所有模块)之前
  • 并为远程git仓库设置标签。
  • 并且应该通过一次提交和自定义消息来完成

我怎样才能做到这一点?

最佳答案

描述的行为是有意的 - 插件在释放模块后增加模块的版本,这是正常的。因此,主要建议是在定制之前三思而后行。

如果你使用的是 Git,你可以设置 pushChangesfalse以避免插入。之后您可以回滚上次提交并推送更改

git reset HEAD~ --hard
git push origin master

如果您解释为什么您认为第二次提交是多余的,建议会更实用。

您也可以随时使用 dryRun如果您不确定更改,请切换。

更新:

  1. 做你的改变
  2. mvn versions:set -DnewVersion=<version-to-set> -DgenerateBackupPoms=false
  3. git commit -m "your-comment"
  4. git tag <your-tag>
  5. 推送提交/标记

这些步骤可以很容易地聚合到脚本文件中,以避免猴子作业。

作为替代方案,您可以查看 BuildNumber-maven-plugin ,这也很有用。

关于java - 如何防止在 maven-release-plugin 中推送 SNAPSHOT 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45323060/

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