在Maven项目中查找依赖项(反向依赖项)

10

我想找到一个与mvn dependency:tree相反的命令。我希望查找所有依赖于特定模块的项目。尽管听起来很简单,但我找不到这样的命令。

使用场景是在非常大的项目中,查找是否可以删除一个模块,或者是否有其他模块将其用作依赖项。


这听起来一点都不简单。这怎么可能呢?我希望 Maven不会告诉你我的项目正在使用哪些依赖项。 - Daniel Kaplan
@tieTYT - 我当然是在谈论同一项目中的模块,而不是我编写并发布在中央存储库中,并被全球各地的项目使用的库。我说的是同一个项目-相同的pom.xml父级。 - Avi
编辑pom文件以更改模块的名称(不是重构,而是编辑),并查看哪些内容出现问题... - Software Engineer
@EngineerDollery - 这是一个很好的方法(肯定比我一开始想到的删除并查看哪些内容出现问题要好得多 :) )。 不过我有点希望能有更加结构化的方法。 - Avi
在Intellij中,您可以突出显示模块并按Alt + F7(搜索用法)。 - Software Engineer
显示剩余2条评论
3个回答

9

试试这个:

mvn dependency:tree -Dincludes=module

在IT技术中,当你需要了解某个依赖模块时,你可以查看直接或间接依赖该模块的库列表。

其中module指的是你感兴趣的依赖模块。


1
尽管这个问题来自2014年,但我正在寻找类似的东西:将依赖项(例如junit)与使用的项目列表(例如maven-compiler-plugin 3.6.0)匹配,这应该给出当前使用的依赖项列表(例如junit 4.12)。 这将为超大型服务的取消部署(在本例中)指出我们自己项目中过时的依赖项(例如junit 3.8)。由于我无法找到自动化版本(除了手动nexus / repo-plugins或maven-dependency-greps),因此我编写了一个小型Java工具:reverseDependencies。如果您遇到类似的任务,请随意使用。注意:它将针对您指定的在线Nexus-like存储库或缓存文件进行检查。

1
这是Maven不包含的内容。但它可以在像Nexus和Bintray这样的Maven存储库中实现。我发现最接近的是Bintray及其构建集成
但由于我的客户使用不同的Maven存储库,我需要为任何存储库都适用的东西。因此,我创建了Pom依赖分析器Web,它可以跟踪依赖项依赖者

Dependents and dependencies


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接