Maven发布插件的过程如下:
(然后检查标签并构建版本)。
因此,发生这种情况的分支的任何合并都会引发新的,可能不受欢迎的版本#。现在,当然,存在cherry-pick,但是手动识别所有上游更改的提交列表,除了版本的更改非常烦人。有人有替代方案吗? (除了总是从一个没有人将其视为“上游”的分支机构发布?)
答案 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修改,那么从单独的分支发布是唯一的选择。