如何在'maven site'中显示依赖冲突

时间:2010-02-15 20:57:59

标签: maven-2

我可以很容易地看到(传递)依赖版本之间是否存在冲突:

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,但在以后版本的发行说明中我没有看到有关此功能更改的任何内容。)

1 个答案:

答案 0 :(得分:2)

  

有没有办法强制在网站生成期间执行任意插件的目标?我在这里完全没有运气吗?

只是回答你的问题,你可以将一个mojo绑定到Site Lifecyclepre-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 sitedependency:tree将会运行。