如何找到请求丢失POM的POM?

时间:2011-04-27 14:44:37

标签: maven dependencies warnings pom.xml

当我构建项目时,我收到了这些警告:

[INFO] ------------------------------------------------------------------------
[INFO] Building XXX
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.eclipse.update:org.eclipse.update.configurator:jar:3.2.0 is missing, no dependency information available
[WARNING] The POM for org.eclipse.emf:org.eclipse.emf.ecore:jar:2.3.2 is missing, no dependency information available
[WARNING] The POM for com.ibm.icu:com.ibm.icu:jar:3.4.4 is missing, no dependency information available

在我的构建中,我覆盖了这些依赖项的版本,构建本身也成功了。

修复警告的最快方法是什么?

编辑:找到包含这些版本的POM的最快方法是什么?

注意:我的本地仓库中有7000个POM。

3 个答案:

答案 0 :(得分:9)

尝试dependency-plugin

中的分析工具

尤其是mvn dependency:analyze-dep-mgt

答案 1 :(得分:3)

可能会有所帮助的一些事情:

mvn dependency:tree -Dverbose=true可以吐出未使用的重复/版本。在我的情况下是不够的,但由于某种原因,它没有显示出列出的违规jar [?]。它也没有显示已省略的jar的后代,这可能有用也可能没用。

参考:http://jira.codehaus.org/browse/MDEP-123

Intellij可以列出它认为冒犯pom和路径的内容(打开pom.xml文件,将鼠标悬停在带下划线的“项目”上:

intellij dependency list

不幸的是,这些对我来说都不够。

然后我注意到如果从〜/ .m2 / repository中删除有问题的目录,它将再次下载并基本为空。因此,我认为此错误消息有时可能意味着“您的nexus列出了一个实际上无法下载的版本”。看来maven默认情况下,如果你请求例子commons-logging 1.1.1,将尝试下载所有已知版本的common-logging的pom,然后,在我的情况下,它吐出那个警告,但它是良性的。呼!

事实上,除了nexus的元数据索引之外,你的项目都没有指向坏pom(或坏版本等)的警告。

答案 2 :(得分:0)

您可以使用dependency:tree来查看pom引用您缺少的那个