我可以很容易地看到(传递)依赖版本之间是否存在冲突:
mvn依赖:tree -Dverbose = true
...这将显示完整的分辨率树,包括省略哪些元素(重复或冲突或其他)。我想要做的是将完整的树添加到'mvn网站'报告中。
目前,站点报告包含依赖关系树,但仅在已解决的情况下,即没有任何冲突。我在project-info-reports插件中看到,目前没有任何方法可以使用标准报告执行我想要的操作。
我尝试在pom中添加一个部分,以包含指定了outputFile的maven-dependency-plugin'tree'目标,但是当我运行'mvn site'时它不包括在内。它是这样的:
<reporting>
....
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<reportSets>
<reportSet>
<id>deptree</id>
<reports>
<report>tree</report>
</reports>
<configuration>
<verbose>true</verbose>
<outputFile>${project.reporting.outputDirectory}/deptree.txt</outputFile>
</configuration>
当然,'tree'目标被明确标识为 not 报告,但我希望至少能够生成一个我可以从生成的站点链接到的文件。没有骰子。
有没有办法强制在网站生成期间执行任意插件的目标?我在这里完全没有运气吗?显然我可以编写自己的报告插件来执行此操作,和/或为project-info-reports插件提交补丁,但我想确保我已经用尽了所有内置的maven选项。
(我正在使用maven 2.1.0,但在以后版本的发行说明中我没有看到有关此功能更改的任何内容。)
答案 0 :(得分:2)
有没有办法强制在网站生成期间执行任意插件的目标?我在这里完全没有运气吗?
只是回答你的问题,你可以将一个mojo绑定到Site Lifecycle的pre-site
阶段:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>tree</id>
<phase>pre-site</phase>
<goals>
<goal>tree</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
...
</reporting>
如果您随后运行mvn site
,dependency:tree
将会运行。