简体   繁体   English

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

[英]How to get a Maven release to work with git?

Trying to release, I always get this: 试图发布,我总是得到这个:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to commit files
Provider message:
The git-commit command failed.
Command output:

There is nothing by "command output". “命令输出”没有任何内容。

Is there some secret configuration trick to get maven to play nice with git? 是否有一些秘密配置技巧让maven与git玩得很好?

The only case I saw where the git-commit command output was empty was on issue 556 , where the following solution was proposed: 我看到git-commit命令输出为空的唯一情况是问题556 ,其中提出了以下解决方案:

I had exactly the same problem as you; 我和你有完全相同的问题; and: 和:

  • removing the release.properties and 删除release.properties
  • putting back my pom version to a SNAPSHOT (it was previously changed by the plugin) version 将我的pom版本放回SNAPSHOT (之前由插件更改)版本

resolved the problem; 解决了这个问题; the process ended successfully. 该过程成功结束。

Like it's being said in the other answer, restoring is done either by doing 就像在另一个答案中所说的那样,恢复是通过干预完成的

mvn release:clean

but since this doesn't always work, so the solution would be to remove release.properties , and running 但由于这并不总是有效,因此解决方案是删除release.properties并运行

mvn versions:set -DnewVersion={version with snapshot}

(This is not necessary if you reset your git repostiory to the state prior to running the release plugin.) (如果您将git repostiory重置为运行release插件之前的状态,则不需要这样做。)

You might also have to remove the commits made by the release plugin, with 您可能还必须删除发布插件提交的提交

git reset --hard HEAD~1

It usually makes two commits, to remove both either run the above command twice, or change the ~1 with ~2 . 它通常使得两次提交,以除去两者或者运行上述命令两次,或更改~1~2

To decouple the git stuff from the maven stuff (so that the mvn build doesn't break upon a git error, you could add this to your pom.xml : 要将git东西与maven内容分离(这样mvn构建不会因git错误而中断,你可以将它添加到你的pom.xml

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

Setting push-changes to false lets you control the git push yourself. 将push-changes设置为false可让您自己控制git push。 (Remember that you also have to push tags, git push --tags . (请记住,你还必须推动标签, git push --tags

有完全相同的问题,这里的两个解决方案都不起作用,直到我从mvn-3.0.4升级到mvn 3.2.5

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM