如何生成Maven项目的所有模块之间的依赖关系图(不包括第三方库,如JUnit,SLF4J等)?我找不到使用m2eclipse将所有模块包含到一个图中的方法.谢谢.
Pas*_*ent 28
如果m2eclipse 的依赖关系图功能无法满足您的需求,可以查看Maven Graph插件,特别是其graph:reactor
目标.
更新:m2eclipse 1.0中删除了依赖关系图功能.有关详细信息,请参阅:Maven POM-Editor:缺少依赖关系图
另一个选项是com.github.janssk1 maven依赖图插件.此插件将依赖项输出到graphml文件,该文件可以在yEd等编辑器中打开和编辑.
要生成graphml文件:
mvn com.github.janssk1:maven-dependencygraph-plugin:1.0:graph
Run Code Online (Sandbox Code Playgroud)
此插件目前不提供排除第三方依赖项AFAICT的任何机制,但可以使用yEd或通过后处理graphml文件的XSLT样式表从图中手动删除它们.这是一个简单的样式表,它将删除第三方依赖项(任何依赖项不以"internal"参数提供的包开头):
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:gml="http://graphml.graphdrawing.org/xmlns/graphml"
version="2.0">
<xsl:output method="xml"/>
<xsl:param name="internal"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="gml:node[not(starts-with(@id, $internal))]"/>
<xsl:template match="gml:edge[not(starts-with(@source, $internal)) or not(starts-with(@target, $internal))]"/>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
并通过兼容XSLT 2.0的处理器(如Saxon)执行:
saxon input.graphml exclude-third-party-deps.xsl internal="my.package" > input-internal.graphml
Run Code Online (Sandbox Code Playgroud)
它确实存在你所需要的,它被称为Pom Explorer.
你可以在这里找到这个网站:github.com/ltearno/pom-explorer
它是一个处理maven项目图表的工具.作为预告片我可以说在我的机器上它在4秒内分析了4000个pom.xml文件.然后在分析的pom图上方提供了许多功能:
它现在正在积极开发中,所以不要犹豫,尝试它,报告错误并要求有用的功能!文档还没有完成,所以再次不要犹豫!
谢谢
刚刚发现这个,效果很好,有很多输出格式和过滤方式: https: //github.com/ferstl/depgraph-maven-plugin
使用它,问题的答案就变成了一句话(可以在这个有用的博客条目中找到:
mvn com.github.ferstl:depgraph-maven-plugin:3.0.1:aggregate -DcreateImage=true -DreduceEdges=false -Dscope=compile "-Dincludes=your.group.id*:*"
也可以查看这个项目:https: //github.com/roclas/pomParser
它创建了一个非常酷的"图形",可以通过两种方式(向前和向后)进行导航.这个想法非常简单,您可以非常轻松地下载和更改代码.
归档时间: |
|
查看次数: |
48860 次 |
最近记录: |