【问题标题】:Maven downloads corrupted JarsMaven 下载损坏的罐子
【发布时间】:2010-12-25 12:03:27
【问题描述】:

我遇到了一个 maven 问题,这会杀死我所有的头发。

所以一开始我的所有 maven 项目都运行良好。然后当我今天切换到一台新计算机并尝试将它们全部编译时。

我从 Eclipse 看到的第一个错误是从本地 maven 存储库读取 jar 文件时出现 IO 错误。然后我用谷歌搜索,有人建议这是一些损坏的文件,只需删除它们并让 maven 重建存储库。

这解决了一段时间的问题。然后它不断地一次又一次地弹出。

我累了,删除了整个本地存储库,然后重新开始。然后我发现了原因:

maven 远程存储库很糟糕。

这里是控制台消息的一部分。

[信息] 找不到资源 'org.apache.ws.commons.axiom:axiom-dom:jar:1.2.8' 在存储库 eclipse-repo (http://repo1.maven.org/eclipse) 下载:https://maven-repository.dev.java.net/nonav/repository//org.apache。 ws.commons.axiom/jars/axiom-dom-1.2.8.jar 373b 下载(axiom-dom-1.2.8.jar) [警告] *** CHECKSUM FAILED - 下载时校验和失败:local = '2c6102c2c3 70e0b993e897e981618ed448651147';远程='

该文件包含一个 http 重定向。

301 永久搬家

永久搬迁

文档已移动here


Apache 服务器位于 maven-repository.dev.java.net 端口 443

我被困住了。我怎样才能得到真正的依赖罐子?我怎样才能告诉 Maven 避免这种情况?这真的很烦人。

【问题讨论】:

    标签: maven-2 repository corruption


    【解决方案1】:

    maven 中有 bug 之王,仅仅是因为 maven 不会跳过获取一个工件,如果一个 maven repo 的发送一个 301(MOVED PERMANANTLY) 并且它只是接收该消息并将其写为 pom 文件。简单地说,如果 maven repo 发送 404,它会跳过该 repo 并转到另一个,但在这里使用 301 它只是将消息作为 pom 文件转储,然后失败。

    我假设您使用的是 Maven 2.2.1?如果是,请尝试降级到 Maven 2.2.0 或使用其他设置。在 2.2.1 中改变了 wagon 的实现。

    Maven 2.2.1 旨在纠正一些与 Maven 2.2.0 中为 HTTP/HTTPS 传输选择基于 HttpClient 的 Wagon 实现相关的关键回归。新版本恢复了这一选择,恢复了基于 Sun 或轻量级的 Wagon 实现作为此类流量的默认设置。

    然而,Maven 2.2.1 更进了一步,提供了一种选择用户希望将哪个提供程序或实现用于特定传输协议的方法。

    所以,尝试使用附加参数运行 maven。

    mvn -Dmaven.wagon.provider.http=httpclient clean install
    

    【讨论】:

    • 我使用的是 2.2.1。但我也在 E​​clipse 中使用 m2eclipse。让我们所有的开发团队来做额外的参数是很困难的。我希望 Maven 能尽快解决这个问题。目前我的工作是安装本地存储库服务器,在服务器中我为所有存储库设置了严格的校验和策略。
    • 这不是“一种”它的错误。感谢您的建议,它帮助了我。
    【解决方案2】:

    一个答案:避免使用 dev.java.net。它经常以一种或另一种方式被破坏。如果您需要那里的东西,请将它们安装在本地存储库管理器中。

    【讨论】:

    • 我该怎么做?我是Maven的新手。我没有配置那个存储库。我只使用默认的。
    • 此外,Maven 实际上会安装损坏的 jar。我希望 Maven 简单地丢弃这些文件。这样会好很多。
    • java.net 不是默认存储库。有人将其放入您的存储库列表中。 maven 用户列表是询问是否有办法拒绝重定向的更好地方。
    【解决方案3】:

    我在 IntelliJ IDEA 13.1.5 和 Ubuntu 14.04 中看到了这个错误。

    Maven 2.2.?将 301 响应主体作为 jar 文件保存在 ~/.m2 缓存中,这会在稍后的构建过程中导致问题。

    我的解决方法是安装 Maven 3。Ubuntu 14.04 的说明在这里:

    http://www.sysads.co.uk/2014/05/install-apache-maven-3-2-1-ubuntu-14-04/

    【讨论】:

      猜你喜欢
      • 2014-01-02
      • 2016-11-06
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 2014-06-05
      相关资源
      最近更新 更多