2012-08-17 47 views
3

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

回答

1

这样的问题实际上不能由插件来回答,因为它只会了解当前反应堆构建中的模块。其他地方还可能存在其他依赖关系 - 但依赖关系信息只能存储在一个方向上。尽管如此,在构建多模块项目时可以使用--also-make-dependents开关,并且它将构建您指定的模块的相关模块。因此,你可以看到他们是什么。

1

你可以使用依赖:树变“包括”:

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.