我正在使用Eclipse并且最近升级了我的所有项目以使用最新版本的库。 但是在Maven存储库中,我仍然可以看到旧版本的库。 我已经从Maven存储库中手动删除了旧库,但它一直在回来。 我确信Eclipse中的所有项目都指向新版本:我已经检查了所有的pom.xml,我使用了“Dependency Hierarchy”工具等。
有没有办法知道哪个项目告诉Maven下载旧版本的库?
非常感谢!
答案 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并且它也无法处理它。