ぺーぺーSEのブログ

備忘録・メモ用サイト。

Maven2、Maven3のPOMの書き方まとめ〜レポート出力設定編〜

参考:http://maven.apache.org/pom.html

blog.pepese.com


■概要

<project ...>

  <reporting>
    <outputDirectory>...</outputDirectory>
    <plugins>
      <plugin>
        <artifactId>...</artifactId>
        <version>...</version>
        <reportSets>
          <reportSet>
            <id>...</id>
            <reports>
              <report>...</report>
            </reports>
            <inherited>...</inherited>
            <configuration>
              <links>
                <link>...</link>
              </links>
            </configuration>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

</project>

pluginManagementは使用できない。
なので、reporting中にpluginは全て定義する必要がある。
また、親POMの設定は継承される。

■設定例1

<reporting>
  <outputDirectory>${basedir}/target/site</outputDirectory>
  <plugins>
    <plugin>
      <artifactId>maven-project-info-reports-plugin</artifactId>
      <version>2.0.1</version>
      <reportSets>
        <reportSet>
          <id>sunlink</id>
          <reports>
            <report>javadoc</report>
          </reports>
          <inherited>true</inherited>
          <configuration>
            <links>
              <link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
            </links>
          </configuration>
        </reportSet>
      </reportSets>
    </plugin>
  </plugins>
</reporting>

■設定例2
以下のレポートを出力する。

  • プロジェクト情報
    • Dependency
    • Management
    • Plugin Management
    • Project Plugins
    • このプロジェクトについて
    • ソースリポジトリ
    • プロジェクトサマリ
    • プロジェクトチーム
    • プロジェクトライセンス
    • メーリングリスト
    • 依存関係
    • 課題追跡
    • 継続的結合
  • プロジェクトレポート
    • Checkstyle
      • Report on coding style conventions.
    • CPD Report
      • Duplicate code detection.
    • FindBugs Report
      • Generates a source code report with the FindBugs Library.
    • JavaDocs
    • PMD Report
      • Verificatin of coding rules.
    • Source Xref
      • HTML based, cross-reference version of Java source code.
    • Surefire Report
      • Report on the test results of the project.
    • Test JavaDocs
    • Test Source Xref
      • HTML based, cross-reference version of Java test source code.
<reporting>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-site-plugin</artifactId>
      <version>2.3</version>
      <configuration>
        <locales>ja</locales>
        <inputEncoding>${encoding}</inputEncoding>
        <outputEncoding>${encoding}</outputEncoding>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-pmd-plugin</artifactId>
      <version>2.7.1</version>
      <configuration>
        <targetJdk>${jdk.version}</targetJdk>
      </configuration>
    </plugin>
    <!-- Java7の構文(ダイヤモンド演算子、例外マルチcatch、try-with-resources等)に未対応のため注意が必要
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>javancss-maven-plugin</artifactId>
      <version>2.0</version>
    </plugin> -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.8.1</version>
      <configuration>
        <encoding>${encoding}</encoding>
        <docencoding>${encoding}</docencoding>
        <additionalJOption>-J-Xmx256m</additionalJOption>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-report-plugin</artifactId>
      <version>2.4.3</version>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
      <version>2.3</version>
      <configuration>
        <enableRulesSummary>false</enableRulesSummary>
        <configLocation>${checkstyle.rule.xml}</configLocation>
        <excludes>${checkstyle.excludes}</excludes>
        <consoleOutput>true</consoleOutput>
      </configuration>
    </plugin>
    <plugin>
      <artifactId>maven-jxr-plugin</artifactId>
      <version>2.1</version>
      <configuration>
        <aggregate>false</aggregate>
        <inputEncoding>${encoding}</inputEncoding>
        <outputEncoding>${encoding}</outputEncoding>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>findbugs-maven-plugin</artifactId>
      <version>2.0</version>
      <configuration>
        <inputEncoding>${encoding}</inputEncoding>
        <outputEncoding>${encoding}</outputEncoding>
        <includeFilterFile>${findbugsfilter.xml}</includeFilterFile>
        <xmlOutput>true</xmlOutput>
        <xmlOutputDirectory>target</xmlOutputDirectory>
        <findbugsXmlOutput>true</findbugsXmlOutput>
        <findbugsXmlOutputDirectory>target</findbugsXmlOutputDirectory>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-project-info-reports-plugin</artifactId>
      <version>2.1.2</version>
      <configuration>
        <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
      </configuration>
    </plugin>
  </plugins>
</reporting>

参考:
http://happy-camper.st/lang/java/maven2/site.html
http://www.eisbahn.jp/yoichiro/2007/02/maven2site.html
http://hondou.homedns.org/pukiwiki/index.php?Maven%20Site