git和maven以及发布和合并

时间:2013-05-08 18:30:57

标签: git maven

Maven发布插件的过程如下:

  1. 更改pom文件中的版本。
  2. 提交
  3. 制作标签
  4. 再次更改pom文件中的版本。
  5. 提交
  6. (然后检查标签并构建版本)。

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

2 个答案:

答案 0 :(得分:1)

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

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

通过这种方式,您可以在本地完成整个发布,并最终进行最终的手动操作。

答案 1 :(得分:0)

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

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