我安装的所有新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>


即使我解决了此问题,所有其他依赖项仍然无法安装。知道为什么其他任何存储库的POM文件都会不断从OpenGeo收到HTML通知吗?我该如何解决?



这是我pom.xml的整个回购部分

<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>

最佳答案

更新的答案:

如果您在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存储库,我就会收到“此存储库已移动”消息,直到我从代理存储库中删除了非OpenGeo工件。

10-04 23:44