2011-09-13 153 views
11

对于任何给定的多模块项目,我正在寻找一种快速方法来显示项目层次结构的快速概览,其中仅包括项目中的模块,不包括外部依赖关系。创建一个Maven项目模块树?

例如,对于一个项目

project root 
+- A 
    +- B 
     +- C 
    +- D 
     +- E 
     +- F 
+- G 
    +- H 

我想看到AH(就像它在这里描述)的快速,单一屏幕视图,让我快速消化以期获得一个项目结构的想法。理想情况下,它将是命令行输出,而不是平台特定的解决方案(我注意到有一个用于VisualStudio的工具)。

mvn dependency:tree是伟大的,但对于这种情况太冗长,我想我可以grepcut输出分开,但感觉应该有一个更简单的方法(即另一个插件)。

回答

16

您可以筛选依赖关系树:http://maven.apache.org/plugins/maven-dependency-plugin/examples/filtering-the-dependency-tree.html

所以,如果你的组ID为com.foo.bar,你可以得到在该组ID的项目:

mvn dependency:tree -Dincludes=com.foo.bar 

假设所有的项目的模块在那个小组内,这将涵盖你的用例。

+0

尼斯,感谢布雷特。 – markdsievers

+0

对我来说mvn依赖:树不能按照假定的方式工作。 如果我有A取决于B和C,而B取决于C,Maven依赖关系:树显示A取决于B和C,但是取决于C取决于B。 – Uberto

+1

@Uberto尝试mvn依赖关系:树 - Dverbose – David

1

你可以在这里试试这个模块:MavenStructurePlugin 我有和你一样的问题,并发现它非常有用。

输出是相当多的你仿佛想:

  test 
      | 
      |__ a 
      | 
      |__ b 
      | 
      | 
      \__ c 
       | 
       |__ d 
       | 
       |__ e 
       | 
       |__ f