Как отобразить конфликты зависимостей в 'mvn site' - PullRequest
3 голосов
/ 15 февраля 2010

Я легко вижу, есть ли конфликты между (транзитивными) версиями зависимостей, используя:

зависимость mvn: дерево -Dverbose = true

... это покажет дерево полного разрешения, включая пропущенные элементы (дубликаты, конфликты или что-то еще). Я хотел бы добавить полное дерево в отчет «mvn site».

В настоящее время отчет сайта включает в себя дерево зависимостей, но только в том случае, если оно разрешено, то есть без каких-либо конфликтов. В плагине project-info-reports я вижу, что в настоящее время нет способа сделать то, что я хочу, используя стандартный отчет.

Я попытался добавить раздел в pom, чтобы включить цель дерева плагинов maven-dependency-plugin с указанным файлом outputFile, но он не был включен, когда я запустил '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>

Конечно, цель «дерева» явно обозначена как , а не отчет, но я надеялся, что, по крайней мере, смогу создать файл, на который я мог бы ссылаться с созданного сайта. Без кубиков.

Есть ли способ заставить цель произвольного плагина выполняться во время генерации сайта? Мне здесь не повезло? Очевидно, я мог бы написать свой собственный плагин для отчетов и / или отправить патч для плагина project-info-reports, но я хочу убедиться, что я исчерпал все встроенные опции maven.

(я использую maven 2.1.0, но я не увидел ничего об изменении этой функции в примечаниях к выпуску для более поздних версий.)

1 Ответ

2 голосов
/ 16 февраля 2010

Есть ли способ заставить цель произвольного плагина выполняться во время генерации сайта? Мне здесь не повезло?

Просто чтобы ответить на ваш вопрос, вы можете связать моджо с 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...