maven-pmd-plugin(最低限の設定編)

今回から、maven-site-plugin について調べてみようと思います。

最低限の設定

とりあえず、警告などが表示されないような最低限の設定を記述してみる。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <!--
    POM Reference
    - http://maven.apache.org/pom.html
  -->
  <modelVersion>4.0.0</modelVersion>

  <!--
    Maven Coordinates
    - http://maven.apache.org/pom.html#Maven_Coordinates
    - http://maven.apache.org/maven-model/maven.html#project
  -->
  <groupId>com.objectfanatics</groupId>
  <artifactId>minpmdenv</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <url>http://www.example.com/</url><!-- maven-site-plugin throws a warning if no url element detected. -->

  <!--
    Build Settings
    - http://maven.apache.org/pom.html#Build_Settings
    - http://maven.apache.org/maven-model/maven.html#build
  -->
  <build>
    <!--
      Plugins
      - http://maven.apache.org/pom.html#Plugins
      Plugin
      - http://maven.apache.org/maven-model/maven.html#class_plugin
    -->
    <plugins>
      <!--
        Maven Compiler Plugin
        - http://maven.apache.org/plugins/maven-compiler-plugin/
        - http://repo2.maven.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>

      <!--
        Maven Site Plugin
          - http://maven.apache.org/plugins/maven-site-plugin/
          - http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-site-plugin/
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.0-beta-3</version>
        <configuration>
          <inputEncoding>UTF-8</inputEncoding>
          <outputEncoding>UTF-8</outputEncoding>
          <reportPlugins>
            <!--
              Maven JXR Plugin
                - http://maven.apache.org/plugins/maven-jxr-plugin/
                - http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-jxr-plugin/
            -->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jxr-plugin</artifactId>
              <version>2.2</version>
              <configuration>
                <inputEncoding>UTF-8</inputEncoding>
                <outputEncoding>UTF-8</outputEncoding>
              </configuration>
            </plugin>
            
            <!--
              Maven PMD Plugin
                - http://maven.apache.org/plugins/maven-pmd-plugin/
                - http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-pmd-plugin/
                - http://pmd.sourceforge.net/
              (Notice! : This must be placed after Maven JXR Plugin's definition.)
            -->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-pmd-plugin</artifactId>
              <version>2.5</version>
              <configuration>
                <sourceEncoding>UTF-8</sourceEncoding>
              </configuration>
            </plugin>
          </reportPlugins>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <!-- suppress warning -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
</project>

実行結果はこんな感じ。

[INFO] Scanning for projects...
   ...
[INFO] configuring report plugin org.apache.maven.plugins:maven-jxr-plugin:2.2
[INFO] configuring report plugin org.apache.maven.plugins:maven-pmd-plugin:2.5
   ...
[INFO] Rendering site with org.apache.maven.skins:maven-default-skin:jar:1.0 skin.
[INFO] Generating "Source Xref" report    --- maven-jxr-plugin:2.2
[INFO] Generating "CPD Report" report    --- maven-pmd-plugin:2.5
[INFO] Generating "PMD Report" report    --- maven-pmd-plugin:2.5
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.922s
[INFO] Finished at: Tue Mar 22 22:49:46 SGT 2011
[INFO] Final Memory: 10M/28M
[INFO] ------------------------------------------------------------------------

ポイント

  1. maven 3 以降では、レポーティング系の定義には reporting 要素は使用せず、maven-site-plugin の中で定義します。
  2. maven-pmd-plugin の定義より前に maven-jxr-plugin の定義します。そうしないと、mvn site:site を実行すると1回目に失敗して2回目に成功するという状況になってしまいます。

レポート

target/site/project-reports.html として、レポートが作成されます。

参考

サンプル