我有一个Maven项目,该项目存储在我们的GIT存储库中。当我使用mvn release:prepare
和mvn release:perform
发布该项目时,有时它在后续步骤中会失败,但是无论如何都会为此版本创建一个标签。此标签不会被mvn release:rollback
删除,如果我再次尝试准备发布,它将失败,并显示以下标签已存在错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.2:prepare (default-cli) on project lwl-module: Unable to tag SCM
[ERROR] Provider message:
[ERROR] The git-tag command failed.
[ERROR] Command output:
[ERROR] fatal: tag 'lwl-module-1.5.1' already exists
[ERROR] -> [Help 1]
[ERROR]
是否有办法让mvn release:rollback
删除GIT存储库中的最后一个标签?
我正在使用此发行插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.2</version>
</plugin>
Maven版本插件当前不支持此。
参见此处:http://maven.apache.org/maven-release/maven-release-plugin/examples/rollback-release.html
在SCM中为该版本创建的分支/标签已删除。注意:这尚未实现,因此您将需要从SCM中手动删除分支/标签。有关更多信息,请参见MRELEASE-229。
[票证(https://issues.apache.org/jira/browse/MRELEASE-229)自2007年以来一直开放。
取决于导致mvn release:perfom
失败的问题,您也可以不回滚发行版,并且在解决问题后直接运行mvn release:perform
,而不运行mvn release:prepare
。
插件版本3.0.0-M1修复了此问题。以前的版本不会删除该标签。
我将其发布为答案以使其更加明显。我从@jechterhoff评论中得到的。请投票给他。