12 нояб. 2012 г.

Отчеты в Maven

upd 03.01.2015: конфиг переехал в reporting вместо site plugin, обновлены версии плагинов

Под катом очередная простыня XML с моим конфигом для построения отчетов, собранным из разных мест интернета.

<project>
...
<reporting>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
      <version>2.13</version>
      <reportSets>
        <reportSet>
          <reports>
            <report>checkstyle</report>
          </reports>
        </reportSet>
      </reportSets>
    </plugin>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>findbugs-maven-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
        <maxHeap>2048</maxHeap>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>2.6</version>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-pmd-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
        <targetJdk>${java.version}</targetJdk>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.10.1</version>
    </plugin>
  </plugins>
</reporting>
...
</project>

Генерация отчетов происходит в фазе создания сайта проекта (с помощью одноименной цели site) с результатом в виде каталога target/site.

Единственный «привередливый» плагин — FindBugs. Ему нужны скомпилированные классы, поэтому обычная команда для генерации всех-всех отчетов будет выглядеть так:

mvn clean test site

Еще иногда в процессе разработки, когда появляются падающие тесты, бывает полезно отключить аварийное завершение после непрохождения тестов:

mvn clean test site -Dmaven.test.failure.ignore

В примере подключены плагины:

  1. checkstyle. Checkstyle — статический анализатор кода, проверяющий соответствие кода code conventions.
  2. findbugs. Findbugs — статический анализатор Java кода, производящий поиск потенциальных багов по определенным паттернам.
  3. cobertura. Cobertura показывает степень покрытия кода тестами: как статистику покрытия по строкам и ветвям условий, так и построчно раскрашенный текст, что позволяет наглядно увидеть куски кода, которыe не выполняются при запуске тестов.
  4. pmd. PMD — еще один анализатор качества Java-кода. С ним в комплекте идет Copy/Paste Detector tool (CPD).
  5. javadoc. Из названия понятно, что плагин предназначен для публикации документации в формате Javadoc.

Комментариев нет :

Отправить комментарий