我有一个相当大的项目(大约30个模块),希望可视化模块间的依赖关系,不包括第三方。
现有的工具似乎根本无法处理maven reactor。maven依赖插件(dependency:tree目标)知道如何生成graphml,但只知道每个模块。如果我使用append标志,它只会将所有内容铲到一个文件中,因此输出是一个损坏的graphml。
我也找到了这个工具,但似乎没有办法控制模块粒度。
我最后的办法是解析dependency:tree的输出,但我想在此之前我会咨询社区。
我喜欢depgraph maven插件来可视化多模块项目中的依赖关系。要获得模块的文本格式(如dependency:tree
)的聚合结果,请使用:
mvn com.github.ferstl:depgraph-maven-plugin:aggregate -DgraphFormat=text -Dincludes=myGroupId
includes的语法与maven依赖插件includes的相同。
它有很多属性可以自定义结果/行为。我更喜欢将它与graphviz一起使用,因此我可以使用(默认)图形格式dot
,并让它在target
文件夹中创建一个png
文件:
mvn com.github.ferstl:depgraph-maven-plugin:aggregate -DcreateImage -Dincludes=myGroupId
还有其他有趣的目标,例如example
目标,以快速处理属性。
我实际上也有同样的情况。我们有4个大项目,每个项目大约有100个pom.xml,并且它们之间存在依赖关系。我没有找到一个好的软件。
现在我使用structure101(structure101.com)来显示它们之间的依赖关系。当然,它不是基于mavenpom.xml的,但在我的情况下,我认为问题是缺少软件体系结构,因为我在每个应用程序中都有大量的maven项目。
目前,我试图在类/包级别以及部署视图上可视化这些依赖关系(https://en.wikipedia.org/wiki/Deployment_diagram)
我想这对你有点帮助。
我用过但没有工具的软件对我的pom.xml计数来说真的很好:
- https://code.google.com/p/q4e/wiki/DependencyGraphViewer
- https://code.google.com/p/maven-overview-plugin