由于git失败,Maven发布失败

时间:2012-11-30 16:14:41

标签: git maven maven-release-plugin

我正在尝试发布mvn,但由于git问题而失败。在没有这个问题之前我已经多次这样做了,我真的不知道为什么/如何发生这种情况。

我首先得到了mvn release:prepare,但是通过将下面显示的最后一行添加到我的root-pom来解决它:

    <artifactId>maven-release-plugin</artifactId>
    <configuration>
      <preparationGoals>clean install</preparationGoals>
      <pushChanges>false</pushChanges>

但是现在,当我尝试执行mvn release:perform时,我再次收到错误消息:

[INFO] Executing: cmd.exe /X /C "git clone file://C\Users\torbjornk\nfr\MyProject/ C:\Users\torbjornk\nfr\MyProject\target\checkout"
[INFO] Working directory: C:\Users\torbjornk\nfr\MyProject\target
[ERROR] The git-clone command failed.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE  
[INFO] ------------------------------------------------------------------------
[INFO] Unable to checkout from SCM
Provider message:
The git-clone command failed.
Command output:
fatal: 'C:/Program Files (x86)/Git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

我不知道我的git-installation-folder应该是git存储库的想法!在错误发生之前记录的git clone-command也不包含对此文件夹的引用..

3 个答案:

答案 0 :(得分:9)

只是添加Tobb优秀的原始答案..
我注意到这已经修复,但是让新版本工作有问题.. 您必须将其添加为插件(而非项目)依赖项,例如

<!-- Appengine deploy at end of mvn release:perform -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.2.2</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-scm-plugin</artifactId>
            <version>1.8.1</version>
        </dependency>
    </dependencies>
</plugin>

答案 1 :(得分:3)

原来这是以前遇到的错误。这是由于maven-scm-provider-git中的一个错误导致对本地存储库的文件引用以便在“C:...”中丢失其“:”。 (这里描述了错误:http://jira.codehaus.org/browse/SCM-662

我们通过将固定版本的jar复制到本地maven存储库来修复此问题,但我最近清除了我的本地存储库以查看我们的Nexus存储库是否正常运行,从而得到了一个未修复版本的jar我当地的回购(doh!)

所以,将固定版本的jar添加到我的本地maven repo中,git clone-command再次包含一个':',并且事情开始起作用了:)

编辑:此错误已在maven发行版插件的2.4版中修复。

答案 2 :(得分:0)

这可能是

的问题
file://C\Users\torbjornk\nfr\MyProject/

?你不能只使用常规路径克隆?

C:\Users\torbjornk\nfr\MyProject/

如果不是,我认为应该是:

file:///C:/Users/torbjornk/nfr/MyProject/

如果这不起作用,请尝试以下方法之一:

file://localhost/c|/Users/torbjornk/nfr/MyProject/
file:///c|/Users/torbjornk/nfr/MyProject/
file://localhost/c:/Users/torbjornk/nfr/MyProject/