如果maven_metadata.xml已经存在,则maven部署会在下载时挂起

时间:2013-12-09 21:34:47

标签: xml maven repository

我已将项目配置为部署到我自己的存储库。当我运行mvn deploy时,看起来它正在运行,但在将maven_metadata.xml文件下载到上传罐子后暂停下载。

INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ myproject ---
Uploading: scp://myrepodomain/.../myproject-0.06-2.jar
Uploaded: scp://myrepodomain/.../myproject-0.06-2.jar (39013 KB at 6234.1 KB/sec)
Uploading: scp://myrepodomain/.../myproject-0.06-2.pom
Uploaded: scp://myrepodomain/.../myproject-0.06-2.pom (8 KB at 21.6 KB/sec)
Downloading: scp://myrepodomain/.../maven-metadata.xml 
320/319 B
.....here is where it just hangs forever

如果我删除服务器上的maven-metadata.xml文件,它可以正常工作,只需上传新生成的文件。

我还应该提到我只是在SCP上使用一个简单的HTTP服务器,我发现较大的工件系统对于我正在做的事情来说太过分了。我无法弄清楚如何调试这个。任何建议将不胜感激。

4 个答案:

答案 0 :(得分:8)

我已经设法通过将scp的所有引用交换到我的pom.xml中的sftp来解决这个问题。此解决方案的优点是它不需要任何其他配置。有关详细信息,请参阅http://jira.codehaus.org/browse/MNG-5605

答案 1 :(得分:8)

对于OS / X 10.9.3和Maven 3.2.3,我遇到了同样的问题。

在部署期间下载文件时似乎是破坏了wagon插件。

我通过将货车连接器切换到"Maven Wagon SSH External"来解决它,以便使用系统ssh命令。

在我的POM.xml修改下面:

        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>2.6</version>
        </extension>

切换到:

        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh-external</artifactId>
            <version>2.6</version>
        </extension>

并替换

    scp://myuser@myhost.com

通过

    scpexe://myuser@myhost.com

进入url标签:

    <repository>
        ...
        <url>scpexe://myuser@myhost.com</url>
        ...
    </repository>

答案 2 :(得分:0)

这似乎是一些模糊的错误,我无法在Maven 3.0.5中找到引用(在debian测试中默认)。安装Maven 3.1.1解决了这个问题。

答案 3 :(得分:0)

我有这样的问题。当我尝试wget这些...maven_metadata.xml个网址时,我收到了404回复。

我的解决方案是缩短这些服务器的超时时间(从2分钟默认为2秒)。

首先,您必须找到此URL的存储库ID。也就是说,如果您不能从artifactoryonline.org下载,请在POM中搜索此存储库:

$ find . -name 'pom*.xml' | xargs grep factoryonline

转到找到的POM并获取存储库ID。 然后将~/.m2/settings.xml修改为以下内容:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
    https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
            <server>
                    <id>Metamarkets-repository</id>
                    <configuration>
                            <httpConfiguration>
                                    <all>
                                            <connectionTimeout>2000</connectionTimeout>
                                            <readTimeout>2000</readTimeout>
                                    </all>
                            </httpConfiguration>
                    </configuration>
            </server>
    </servers>
</settings>

这将使下载在2秒后放弃并让构建继续(假设maven_metadata.xml将从其他地方下载)。