git和maven以及发布和合并
Maven发行版插件如下所示:git和maven以及发布和合并,git,maven,Git,Maven,Maven发行版插件如下所示: 更改pom文件中的版本 承诺 做标签 再次更改pom文件中的版本 承诺 (然后它签出标记并构建发行版) 因此,发生这种情况的分支中的任何合并都将拉取新的(可能是不希望的)版本。当然,现在有了cherry pick,但是手动识别所有上游更改(版本更改除外)的提交列表非常烦人。有人有别的选择吗?(除了总是从没有人视为“上游”的分支释放之外?)不幸的是,在使用GIT时,这是不可能的,因为标记只是指向特定提交的指针。因此,如果您想在标记的POM中拥有正确的版本号,您必须首
因此,发生这种情况的分支中的任何合并都将拉取新的(可能是不希望的)版本。当然,现在有了cherry pick,但是手动识别所有上游更改(版本更改除外)的提交列表非常烦人。有人有别的选择吗?(除了总是从没有人视为“上游”的分支释放之外?)不幸的是,在使用GIT时,这是不可能的,因为标记只是指向特定提交的指针。因此,如果您想在标记的POM中拥有正确的版本号,您必须首先修改并提交它们。 maven发布插件中有一个名为
suppressCommitBeforeTag
的选项,可以避免提交修改过的POM。然而,这只在SCM(如Subversion)中起作用。如果在GIT环境中启用此选项,则标记的POM将包含您试图发布的快照版本
因此,如果您不想在主分支上进行中间POM修改,从单独分支发布是唯一的选择。您可以使用发布插件的localCheckout和pushChanges选项:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<localCheckout>true</localCheckout>
<pushChanges>false</pushChanges>
</configuration>
</plugin>
org.apache.maven.plugins
maven发布插件
真的
假的
这样,您就可以在本地完成整个发布,并在最后进行最后一次手动推送。我很困惑,您什么时候会想这样做?您需要有3种存储库状态:1)在开始发布之前,X.Y-SNAPSHOT;2) 在释放状态下,X.Y;3) 准备再次开始开发,X.Y+1-SNAPSHOT。我猜你希望#2只存在于一个分支中,那么#3可能在下一个“真正的”变化之前不会被推出?我想,你可以用一个互动的重基压扁它。。。