有没有办法让一组给定项目的 Maven 依赖关系图(如果可能,图形化),而无需绘制第 3 方依赖关系?或者我选择退出我不感兴趣的依赖项?
我想将工具/插件指向许多 POM 文件,并查看这些项目之间依赖关系的描述。
如果使用,则可以使用和mvn dependency:tree
指定要排除或包含的文件。输出是对依赖项的 ASCII 艺术风格的描述。-Dexcludes
-Dincludes
有关更多信息,请参阅文档。
确实存在您需要的东西,它被称为Pom Explorer。
你可以在这里找到网站:github.com/learno/pom-explorer
它是处理 maven 项目图的工具。作为预告片,我可以说在我的机器上它在 4 秒内分析了 4000 个 pom.xml 文件。然后在分析的 pom 图上方提供了许多功能:
它现在正在积极开发中,所以不要犹豫尝试它,报告错误并要求有用的功能!文档还没有完成,所以再次不要犹豫!
谢谢
mvn com.github.ferstl:depgraph-maven-plugin:aggregate -Dincludes=com.yourcompany.pkg
对我很好。
您可以使用POM2RDF生成项目依赖项(及其依赖项等)的 RDF 图,然后您可以查询以获取软件材料清单或可视化为依赖关系图。
免责声明:我是作者。
我喜欢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
快速使用属性的目标。