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