我怎么知道哪个项目正在从Maven请求一个特定的jar

时间:2015-03-19 17:35:06

标签: java eclipse maven jar pom.xml

我正在使用Eclipse并且最近升级了我的所有项目以使用最新版本的库。 但是在Maven存储库中,我仍然可以看到旧版本的库。 我已经从Maven存储库中手动删除了旧库,但它一直在回来。 我确信Eclipse中的所有项目都指向新版本:我已经检查了所有的pom.xml,我使用了“Dependency Hierarchy”工具等。

有没有办法知道哪个项目告诉Maven下载旧版本的库?

非常感谢!

4 个答案:

答案 0 :(得分:1)

您可以使用Maven dependency plugin的树目标:

mvn dependency:tree

并使用includes选项进行过滤,该选项使用模式[groupId]:[artifactId]:[type]:[version]

答案 1 :(得分:1)

Re:“我有很多”。在最顶层的目录中执行以下操作:

 find . -name "pom.xml" -type f -exec mvn dependency:tree -f {} ';' | grep '^\[.*\] [-+\\\|].*'

语法细节可能因Bash而异。

提示:首先在最底层的项目目录中尝试,以确保它按预期正常运行。由于您有许多项目,因此可能需要一段时间才能完成并仅识别可能的错误。

答案 2 :(得分:0)

您可以使用以下命令获取所有依赖项的树,然后找出特定工件的来源。

如果您使用的是基于linux / unix的操作系统,则可以使用grep进行管道以仅显示相关的内容。

mvn dependency:tree

答案 3 :(得分:0)

谢谢你们,感谢,但这肯定不是一个简单的方法。看起来你必须逐个项目(我有很多)。加上我的大多数pom引用其他文件夹中的pom并且它也无法处理它。