无法在Eclipse(Luna)Maven中安装任何新库

时间:2014-09-27 20:59:09

标签: java maven dependency-management

这个错误刚刚开始出现,我安装了任何新的maven依赖项。依赖项在Maven依赖关系树中显示为空,项目报告,例如:

Description Resource Path Location Type Archive for required library: '~/.m2/repository/com/ning/async-http-client/1.8.14/async-http-client-1.8.14.jar' in project 'LB' cannot be read or is not a valid ZIP file LB Build path Build Path Problem

我查看了每个新依赖项的POM文件,它们都包含在内:

<HTML>
<BODY>
This repo has moved to repo.boundlessgeo.com. Please update your settings.
</BODY>
</HTML>

所以我发现OpenGeo Maven Repo在此基础上发生了变化:

<!-- <repository>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
    <id>opengeo</id>
    <name>OpenGeo Maven Repo</name>
    <url>http://repo.opengeo.org</url>
</repository> -->

替换为:

<repository>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
    <id>boundless</id>
    <name>Boundless Maven Repository</name>
    <url>http://repo.boundlessgeo.com/main</url>
</repository>

即使我修复了这个问题,所有其他依赖项仍然无法安装。知道为什么任何其他repo的POM文件不断从OpenGeo获取HTML通知?我该如何解决?


这是我的pom.xml的整个repo部分

<repositories>
<repository>
    <id>maven2-repository.dev.java.net</id>
    <name>Java.net repo</name>
    <url>http://download.java.net/maven/2</url>
</repository>
<repository>
    <id>osgeo</id>
    <name>Open Source Geospatial Foundation Repo</name>
    <url>http://download.osgeo.org/webdav/geotools/</url>
</repository>
<repository>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
    <id>opengeo</id>
    <name>OpenGeo Maven Repo</name>
    <url>http://repo.opengeo.org</url>
</repository>
<repository>
    <id>central</id>
    <name>The Central Repository</name>
    <url>http://repo1.maven.org/maven2/</url>
</repository>

1 个答案:

答案 0 :(得分:3)

更新的答案:

如果您在pom.xml中定义了一个存储库,该存储库提供静态内容而不是正确的Maven存储库(在本例中为http://repo.opengeo.org,已移至http://repo.boundlessgeo.org),Maven将下载静态内容为pom,jar等,并抱怨它后来被破坏了。 这些无效文件将保留在您的本地存储库中,直到您删除它们为止,即使在您修复问题存储库之后也是如此。

摆脱无效文件的最简单方法是删除整个〜/ .m2 /存储库并下载所有新文件。但是,您也可以删除问题文件(根据无效文件中的静态内容调整grepped消息):

grep -lrIZ "This repo has moved to repo.boundlessgeo.com" ~/.m2/repository \
  | xargs -r0 rm

然后执行正常的mvn clean install,并且应该从更正的存储库中下载有效的工件。

有关将http://repo.opengeo.org更新为http://repo.boundlessgeo.org的详细信息,请参阅原始问题。

注意:Maven可能会下载无效的静态内容,因为repo.opengeo.org返回的状态代码为200.


原始答案:

您是否有可能以某种方式将旧的OpenGeo Maven Repo配置为所有存储库的镜像?也许在您的本地settings.xml或Nexus工件库中?

我碰到了类似的东西,我们的Nexus服务器在代理的OpenGeo存储库中以某种方式存在一堆非OpenGeo工件。一旦OpenGeo / BoundlessGeo回购移动,我得到了#34;这个回购已经移动了#34;消息,直到我从代理存储库中删除了非OpenGeo工件。