2

Maven 发布插件进行如下:

  1. 更改 pom 文件中的版本。
  2. 犯罪
  3. 做一个标签
  4. 再次更改 pom 文件中的版本。
  5. 犯罪

(然后它检查标签并构建发布)。

因此,发生这种情况的分支中的任何合并都会拉取新的,可能是不受欢迎的版本 #。现在,当然,cherry-pick 存在,但是手动识别所有上游更改的提交列表,除了版本的更改是非常烦人的。有没有人有替代方案?(除了总是从没有人视为“上游”的分支发布?)

4

2 回答 2

1

您可以使用发布插件的localCheckoutpushChanges选项:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <configuration>
        <localCheckout>true</localCheckout>
        <pushChanges>false</pushChanges>
    </configuration>
</plugin>

这样您就可以在本地进行整个发布,最后进行最终的手动推送。

于 2013-05-10T09:13:58.190 回答
0

不幸的是,当您使用 GIT 时这是不可能的,因为标签只是指向特定提交的指针。因此,如果您想在标记的 POM 中拥有正确的版本号,您必须先修改并提交它们。在 maven-release-plugin 中有一个选项suppressCommitBeforeTag可以避免提交修改过的 POM。然而,这只适用于像 Subversion 这样的 SCM。如果您在 GIT 环境中启用此选项,您标记的 POM 将包含您尝试发布的 SNAPSHOT 版本。

因此,如果您不想在主分支上进行中间 POM 修改,则从单独的分支发布是唯一的选择。

于 2013-05-08T20:08:06.797 回答