2

我正在编译一个“旧”的开源项目,同时遇到了这个问题:

[ERROR] Failed to execute goal on project .... Can not transfer artifact x:y:z from ...

在项目 pom.xml 中定义的所有存储库中都找不到工件 x:y:z。

在查找了有效的 pom.xml 后,我找不到任何对 x:y:z 的引用。

如何在不分析所有传递依赖项的情况下找出哪个工件或插件正在请求丢失的依赖项?

4

1 回答 1

1

如果你使用 ecipe - 你可以看到像这样的 dep 树:打开 pom.xml 并勾选“Dependency Hierarchy”选项卡。

您也可以尝试使用mvn dependency:tree,但如果您的某些部门丢失,我不完全确定它是否会起作用。

更新:似乎 eclipse 和 dependency:tree 都需要成功的工件解析才能工作,这不是你的情况。

在这种情况下,我猜你剩下 3 个选项:

  1. ~/.m2/repository清理缓存(擦除~/.m2/repository. 一个或几个工件应在其 pom.xml 中引用有问题的工件。这应该给你一个提示。

  2. -X清理缓存并使用switch运行构建。这将使 maven 进入详细模式,您应该找到一些关于什么可能引用死依赖的提示(注意下载顺序,解决了哪些工件,检查 pom 中已解决工件的依赖关系)

  3. 蠢得要命 - 在你的 pom 中评论/取消评论,看看是什么导致了提到的错误。

于 2013-05-21T10:25:13.313 回答