这个错误刚刚开始出现,我安装了任何新的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>
答案 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工件。