能否获取反向依赖关系?

3

我有一个奇怪的问题 =)。Maven有一个漂亮的命令 - mvn dependency:tree,它以树形式显示依赖模块,例如模块A依赖于模块B。 也许mvn有一些插件可以显示使用模块B的位置?例如- 模块B用于A。

4个回答

1
您可以使用变量“includes”和dependency:tree命令进行相关编程依赖的查看:
mvn dependency:tree -Dincludes=groupId:B

它将会产生类似以下的内容。
[INFO] ------------------------------------------------------------------------
[INFO] Building B 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.9:tree (default-cli) @ B ---
[INFO] groupId:B:jar:0.0.1-SNAPSHOT
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building A 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.9:tree (default-cli) @ A ---
[INFO] groupId:A:jar:0.0.1-SNAPSHOT
[INFO] \- groupId:B:jar:0.0.1-SNAPSHOT:compile
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building C 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.9:tree (default-cli) @ C ---
[INFO]                                                                         

然后你会发现只有模块A和B的依赖树中包含了模块B。


1

这样的问题实际上无法通过插件来回答,因为它只知道当前反应堆构建中的模块。可能会有其他依赖关系在别处 - 但是依赖信息始终只存储在一个方向。

话虽如此,在构建多模块项目时,您可以使用--also-make-dependents开关,它将构建指定模块的依赖模块。因此,您可以看到它们是什么。


1

Maven 中没有这样的机制。

对于 Maven 中央仓库,搜索引擎 http://mvnrepository.com/ 提供了一个部分:此 artifact 被以下使用...


0

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