【问题标题】:Maven deploy hangs while downloading maven_metadata.xml if it exists alreadyMaven 部署在下载 maven_metadata.xml 时挂起(如果它已经存在)
【发布时间】:2013-12-09 21:34:46
【问题描述】:

我已将我的项目配置为部署到我自己的存储库。当我运行 mvn deploy 时,它看起来正在运行,但在上传 jars 后,在下载 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 服务器,我发现更大的工件系统对于我正在做的事情来说太过分了。我什至不知道如何调试它。任何建议将不胜感激。

【问题讨论】:

标签: xml maven repository


【解决方案1】:

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

好像是wagon插件在部署过程中下载文件时坏掉了。

我通过将 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

进入网址标签:

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

【讨论】:

  • 升级到更高版本的 wagon-ssh(在我的例子中是 2.9)解决了这个问题!
  • 这里一样,将版本增加到 2.10 修复它。
【解决方案2】:

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

【讨论】:

  • 完美!将 协议从 scp 更改为 sftp 解决了我的问题。
  • 这是最好的答案,因为它适用于 Maven 3.1.1 甚至最新的 Maven 3.5.0。 scpscpexe 为 maven 3.1.1 工作,但停止为更高版本的 maven 工作。
【解决方案3】:

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

【讨论】:

  • 使用 Maven 3.2.1 的我刚刚开始出现这种情况。
  • 在 ubuntu 上,我使用 apt-get 删除了 3.0.5,然后手动安装了 3.3.3,问题就消失了。
  • apache ssh-Wagon 是问题issues.apache.org/jira/browse/WAGON-429。你需要2.9版!这个bug已经烦了两年多了!主要发行版有错误,例如带有 mvn 3.0.5 的 Ubuntu 14.04 LTS
  • 删除或重命名maven文件夹
【解决方案4】:

我遇到了这样的问题。当我尝试wget 这些...maven_metadata.xml URL 时,我收到了 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 将从其他地方下载)。

【讨论】:

    猜你喜欢
    • 2018-09-08
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2011-06-24
    • 2020-10-12
    • 2015-06-14
    • 2017-10-29
    • 2011-01-18
    相关资源
    最近更新 更多