tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

maven-compiler-plugin

Javaコンパイルを行うmaven-compiler-pluginの設定

/project/build/plugins

      <!-- Compiler -->
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
          <encoding>UTF-8</encoding>
          <showDeprecation>true</showDeprecation>
          <showWarnings>true</showWarnings>
          <compilerArgument></compilerArgument>
        </configuration>
      </plugin>
  • source 対象ソースコードのバージョン。javacの-sourceと同じ
  • target 生成するクラスファイルのVM対応バージョン。javacの-targetと同じ。
  • encoding ソースコード文字コード。javacの-encodingと同じ。
  • showDeprecation 非推奨情報を画面に表示するかどうか。
  • showWarnings 警告情報を画面に表示するかどうか。
  • compilerArgument その他のjavacオプションを記述する。

maven-eclipse-plugin

Eclipseのプロジェクト用ファイルを作成するmaven-eclipse-pluginの設定

/project/build/plugins

      <!-- Eclipse -->
      <plugin>
        <artifactId>maven-eclipse-plugin</artifactId>
        <version>2.5.1</version>
        <configuration>
          <downloadSources>true</downloadSources>
          <downloadJavadocs>true</downloadJavadocs>
        </configuration>
      </plugin>
  • downloadSources ライブラリのソースを一緒にダウンロードする。
  • downloadJavadocs ライブラリのJavaDocを一緒にダウンロードする。

maven-surefire-plugin(djUnitを使用)

Unitテストを実行するmaven-surefire-pluginの設定
id:tanigonさんのこの記事が大変参考になりました。ありがたいことです。

/project/build/plugins

      <!-- UnitTest(DjUnit使用) -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.4.2</version>
        <configuration>
          <!-- ↓改行させるとClassNotFoundExceptionが出る -->
          <argLine>-Djava.system.class.loader=jp.co.dgic.testing.common.DJUnitClassLoader -Djp.co.dgic.eclipse.virtualmock.usevirtualmock=true -Djp.co.dgic.eclipse.coverage.usecoverage=false -Djp.co.dgic.eclipse.project.source.dir="${project.build.sourceDirectory}" -Djp.co.dgic.eclipse.virtualmock.ignore.library=false</argLine> 
          <forkMode>always</forkMode>
          <useSystemClassLoader>true</useSystemClassLoader>
        </configuration>
      </plugin>

オプションはほぼおまじないなので省略。以下は注意点。

  • コメントにあるようにargLineに改行が入るとエラーになりますので、1行で書きます。
  • ${project.build.sourceDirectory}が""でくくられていますが、これがないとHudsonなど(正確にはスペースが含まれるディレクトリ上)で実行するとエラーになります。

この2つは知らないと超ハマるので気をつけてください。

/project/dependencies

    <!-- jUnit / djUnit -->
    <dependency>
      <groupId>jp.co.dgic</groupId>
      <artifactId>djunit</artifactId>
      <version>0.8.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>asm</groupId>
      <artifactId>asm</artifactId>
      <version>3.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>oro</groupId>
      <artifactId>oro</artifactId>
      <version>2.0.8</version>
      <scope>test</scope>
    </dependency>

djunit, junit, asm, oroが必要になります。
(djunitの内部でoroを使っているので、oroも必須です)

maven-javadoc-plugin

JavaDocを生成するmaven-javadoc-pluginの設定

/project/reporting/plugins

      <!-- JavaDoc -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <encoding>UTF-8</encoding>
          <docencoding>UTF-8</docencoding>
          <charset>UTF-8</charset>
          <bottom></bottom>
        </configuration>
      </plugin>

maven-jxr-plugin

JavaソースをHTMLで生成するmaven-jxr-pluginの設定
他のレポートとソースを紐付けてくれるので、けっこう便利

/project/reporting/plugins

      <!-- SourceCode -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <configuration>
          <inputEncoding>UTF-8</inputEncoding>
          <outputEncoding>UTF-8</outputEncoding>
        </configuration>
      </plugin>

maven-surefire-report-plugin

UnitTestのレポートを生成するmaven-surefire-report-pluginの設定

/project/reporting/plugins

      <!-- UnitTestReport -->
      <plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-surefire-report-plugin</artifactId>  
        <reportSets>
          <reportSet>  
           <reports>  
             <report>report-only</report>  
           </reports>  
         </reportSet>  
       </reportSets>  
      </plugin>  

reportSets/reportSet/reports/repotにreport-onlyゴールを指定することで、UnitTestを再実行しなくなります。reportSetsの記述に関してはPOM Referenceを参照のこと。