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

标签 java maven dependency-management

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

描述所需库的资源路径位置类型存档:'~/.m2/repository/com/ning/async-http-client/1.8.14/async-http-client-1.8.14.jar'在项目“LB”中无法读取或不是有效的 ZIP 文件 LB 构建路径构建路径问题

我查看了每个新依赖项的 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>

最佳答案

更新的答案:

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

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

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

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

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

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


原答案:

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

我遇到了类似的情况,我们的 Nexus 服务器以某种方式在我们的代理 OpenGeo 存储库中有一堆非 OpenGeo Artifact 。 OpenGeo/BoundlessGeo 存储库移动后,我收到“此存储库已移动”消息,直到我从代理存储库中删除非 OpenGeo Artifact 。

关于java - 无法在 Eclipse (Luna) Maven 中安装任何新库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26079166/

相关文章:

Java 找出两个数组中的共同元素

java - 使用 XPath 从 XML 文件获取特定值

java - 抑制 Eclipse 中缺少 @Override 注释的警告

java - 无法从资源测试文件夹加载资源

git - 去 dep 去生成

java - Gradle 将依赖配置与任务绑定(bind)

Java 应用程序在 nextLine() 上崩溃

java - 使用 WAS7 进行 Maven 安装

php - 当作为依赖项包含在 Composer 中时,自动将文件包含在包中

maven - 如何更改 Maven 依赖项 View 布局?