9

我正在尝试发布 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 也不包含对此文件夹的引用。

4

3 回答 3

10

只是为了添加到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>
于 2012-12-15T02:44:17.430 回答
3

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

我们通过将固定版本的 jar 复制到本地 maven 存储库来解决此问题,但我最近清除了本地存储库以查看我们的 Nexus 存储库是否正常运行,因此在我的本地存储库中获得了未修复版本的 jar (呸!)

因此,将 jar 的固定版本添加到我的本地 maven 存储库中,git clone-command 再次包含一个':',事情开始工作:)

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

于 2012-12-07T13:44:18.093 回答
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/
于 2012-11-30T16:29:24.303 回答