如何找出哪个maven工件/插件请求下载不再可用的依赖项

时间:2013-05-21 10:09:21

标签: maven maven-dependency-plugin

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

[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的引用。

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

1 个答案:

答案 0 :(得分:0)

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

此外,您可以尝试使用mvn dependency:tree但我不完全确定如果您的某些代表缺失,它会起作用。

UPDATE:看起来像eclipse和依赖:树需要成功的工件解析工作,这不是你的情况。

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

  1. 清除缓存(擦除~/.m2/repository下的所有内容),运行构建并在~/.m2/repository中的文件上搜索(搜索“problematic-artifact-id”之类的内容)。一件或几件工件应该在他们的pom中引用有问题的工件。这应该给你一个提示。

  2. 清理缓存并使用-X开关运行构建。这会将maven置于详细模式,您应该找到一些关于可能引用死依赖的提示(将注意力集中在下载顺序,解决了哪些工件,检查已解决的工件在其poms中的依赖性)

  3. 愚蠢的地狱 - 在你的pom中评论/取消注释deps,看看导致上述错误的原因。