有可能得到逆依赖吗?

时间:2012-08-17 15:15:27

标签: maven dependencies

我有一个奇怪的问题=)。 Maven有漂亮的命令 - mvn依赖:tree,它在树中显示依赖模块,例如模块A依赖于模块B. 也许mvn有一些插件显示在哪里使用模块B?例如 - A

中使用的模块B.

4 个答案:

答案 0 :(得分:1)

这个问题无法通过插件真正回答,因为它只能了解当前reactor构建中的模块。其他地方可能存在其他依赖关系 - 但依赖关系信息只存储在一个方向上。

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

答案 1 :(得分:1)

maven中没有这样的机制。

对于maven中央存储库,搜索引擎http://mvnrepository.com/提供了一个部分此工件由...使用

答案 2 :(得分:1)

您可以使用依赖:树变量“includes”:

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的依赖树。

答案 3 :(得分:0)

至少在查看大型多模块结构时,versions-maven-plugin可能会有所帮助。