题
我跑成的杀了我所有的头发行家问题。
所以在一开始我所有的Maven项目工作正常。然后当我到一个新的电脑开通了,并试图编译它们。
我从Eclipse中看到的第一个错误是从本地仓库IO错误读数的jar文件。然后,我一派,有人建议这是一些损坏的文件,只需删除他们,让行家重建存储库。
这解决了一段时间的问题。然后它一直一次又一次弹出。
我累了,并取出全部本地库一遍所做的一切。然后我发现的原因:
在行家远程存储库是坏的。
因此,这里的控制台消息的一部分。
[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 PermanentlyMoved Permanently
The document has moved here.
Apache Server at maven-repository.dev.java.net Port 443
我卡住。我怎样才能得到真正的依赖罐子?我怎么能告诉Maven来避免这种情况?这实在是烦人。
解决方案
有在行家错误的王,只是因为行家不会跳过服用的伪影,如果一个 行家回购的发送301(PERMANANTLY移动)和它简单地采取该消息,并将其写入作为POM文件。如果简单的Maven的回购发送404它跳过回购,去另一个,但在这里有301只是转储消息作为POM文件,后来这failes。
我假设你使用Maven 2.2.1?如果是尝试,降级到2.2.0的Maven或使用额外的设置。在2.2.1在车皮实现更改。
的Maven 2.2.1旨在纠正有关HttpClient的基于货车实现的选择用于在Maven的2.2.0 HTTP / HTTPS传送几个关键消退。新版本将恢复这一选择,复原孙基 - 或轻 - 旅行车实现作为默认这种流量
然而,Maven的2.2.1更进了一步,以提供选择的一个装置,该装置提供者 - 或实施 - 用户希望用于特定传输协议
所以,尽量运行行家用额外PARAMS。
mvn -Dmaven.wagon.provider.http=httpclient clean install
其他提示
一个答案:避免dev.java.net。它经常被打破以某种方式或其他。如果你从那里需要的东西,在本地仓库管理器进行安装。
我已经看到了这个误差的IntelliJ IDEA 13.1.5和Ubuntu 14.04。
的Maven 2.2?节省了301响应主体作为〜/ .m2目录高速缓存中的jar文件,其生成过程中会导致以后的问题。
我此修复程序是安装Maven 3,说明对Ubuntu 14.04的位置:
HTTP ://www.sysads.co.uk/2014/05/install-apache-maven-3-2-1-ubuntu-14-04/