如何让Maven版本与git一起使用?

wil*_*eer 18 git maven maven-release-plugin

试图发布,我总是得到这个:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to commit files
Provider message:
The git-commit command failed.
Command output:
Run Code Online (Sandbox Code Playgroud)

"命令输出"没有任何内容.

是否有一些秘密配置技巧让maven与git玩得很好?

Von*_*onC 22

我看到git-commit命令输出为空的唯一情况是问题556,其中提出了以下解决方案:

我和你有完全相同的问题; 和:

  • 删除release.properties
  • 将我的pom版本放回SNAPSHOT(之前由插件更改)版本

解决了这个问题; 该过程成功结束.

  • [`mvn release:clean`](http://maven.apache.org/plugins/maven-release-plugin/clean-mojo.html)是另一种方法.它删除`release.properties`和任何备份POM文件. (4认同)

Tob*_*obb 9

就像在另一个答案中所说的那样,恢复是通过干预完成的

mvn release:clean
Run Code Online (Sandbox Code Playgroud)

但由于这并不总是有效,因此解决方案是删除release.properties和运行

mvn versions:set -DnewVersion={version with snapshot}
Run Code Online (Sandbox Code Playgroud)

(如果您将git repostiory重置为运行release插件之前的状态,则不需要这样做.)

您可能还必须删除发布插件提交的提交

git reset --hard HEAD~1
Run Code Online (Sandbox Code Playgroud)

它通常会进行两次提交,同时删除两次运行上面的命令,或者更改~1with ~2.

要将git东西与maven的东西分离(以便mvn构建不会因git错误而中断,你可以将它添加到你的pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <configuration>
        <pushChanges>false</pushChanges>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

将push-changes设置为false可让您自己控制git push.(请记住,你还必须推动标签,git push --tags.