Maven下载损坏的Jars

sav*_*nna 10 maven-2 repository corruption

我遇到了一个杀死我所有头发的maven问题.

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

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

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

我累了,删除了整个本地存储库,并重新做了一切.然后我发现了原因:

maven远程存储库是坏的.

所以这是控制台消息的一部分.

[INFO] Unable to find resource 'org.apache.ws.commons.axiom:axiom-dom:jar:1.2.8'
 in repository eclipse-repo (http://repo1.maven.org/eclipse)
Downloading: https://maven-repository.dev.java.net/nonav/repository//org.apache.
ws.commons.axiom/jars/axiom-dom-1.2.8.jar
373b downloaded  (axiom-dom-1.2.8.jar)
[WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '2c6102c2c3
70e0b993e897e981618ed448651147'; remote = ' 

The file contains an http redirect.

301 Moved Permanently

Moved Permanently

The document has moved here.


Apache Server at maven-repository.dev.java.net Port 443

我被卡住了.我怎样才能得到真正的依赖罐?我该如何告诉maven避免这种情况?这真的很烦人.

cet*_*nar 21

maven中有bug之王,只是因为如果maven repo中的一个发送301(MOVED PERMANANTLY)并且它只是接收该消息并将其写为pom文件,则maven不会跳过捕获工件.简单地说,如果maven repo发送404,它会跳过该repo并转到另一个,但是在这里它只是将消息转储为pom文件,稍后就会崩溃.

我假设你正在使用Maven 2.2.1?如果是,请尝试降级到Maven 2.2.0或使用其他设置.在2.2.1中改变了旅行车的实施.

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
Run Code Online (Sandbox Code Playgroud)