【问题标题】:How to use properly mvn release:prepare?如何正确使用 mvn release:prepare?
【发布时间】:2017-04-18 12:59:42
【问题描述】:

我在我的 Maven 项目上尝试这个命令(使用dryrun 进行测试):

mvn release:clean release:prepare -DdryRun=true -DgenerateBackupPoms=false -Dtag=solocal-refentreprive-2.1-RC02 -DreleaseVersion=2.1-RC02 -DdevelopmentVersion=2.1-SNAPSHOT

最后,构建成功,但我(在我的提交中)有很多 pom.next / pom.tagpom.backUp...

如果我不使用 dryrun,我不会在那时 (-DgenerateBackupPoms=false)。我不想推这个 pom...

【问题讨论】:

  • 什么版本的Maven?什么版本的maven发布插件?
  • 有几个标签看起来不合适;例如这和 git 有什么关系?

标签: git maven maven-plugin release maven-release-plugin


【解决方案1】:

假设您接受默认版本:prepare 执行以下操作

1) 构建并检查所有测试是否通过

2) 检查没有 SNAPSHOT 依赖项

3) 将版本从 x.x-SNAPSHOT 更改为 x.x

4) 推送到 SCM 中的标签

5) 将下一次迭代的版本更改为 x.(x+1)-SNAPSHOT

所以你的 pom.backUp 是原始的 pom,你的 pom.tag 来自第 3 步,你的 pom.next 来自第 5 步。

您可以使用 mvn release:clean 进行清理,这将在发布后自动完成:执行参见 maven-release

【讨论】:

  • 推送标签意味着推送到 git 或只是创建需要显式推送的本地标签?
  • @SharadHolani 表示将标签推送到远程 SCM
  • 我运行 maven 发布插件。但我没有看到任何新标签被推送到我的远程 git。我可以看到它已按照步骤 3 和 5 中的说明进行了 2 次本地提交。此外,当我运行 git describe --tags 时,我可以看到在本地创建的标签。我不需要运行 git push 来将步骤 4 中创建的标签推送到远程 git 吗?
【解决方案2】:

也许已经晚了,但根据您的问题,您还没有在mvn release:prepare 命令之后运行mvn release:perform

不要忘记使用 perform 命令完成发布过程。 https://maven.apache.org/maven-release/maven-release-plugin/plugin-info.html

或者如果你不想使用perform,使用应该再次使用mvn release:clean

【讨论】:

    猜你喜欢
    • 2013-02-18
    • 1970-01-01
    • 2013-10-21
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2010-09-10
    • 2018-09-13
    相关资源
    最近更新 更多