mavenのレポートプラグインてんこ盛り設定
mavenレポートプラグインをてんこ盛りにしたpom.xmlの設定例です。
以下のレポートプラグインを使います。
- org.apache.mavenのプラグイン
- maven-site-plugin
- プロジェクトのサイトを作成する
- maven-jxr-plugin
- クロスリファレンスを作成する
- maven-surefire-report-plugin
- テスト結果のレポートを作成する
- maven-checkstyle-plugin
- checkstyleのチェックレポートを作成する。
- maven-pmd-plugin
- PMDでのチェックレポートを作成する。
- maven-site-plugin
- org.codehaus.mojoのプラグイン
- findbugs-maven-plugin
- findbugsのチェックレポートを出力する。
- cobertura-maven-plugin
- jdepend-maven-plugin
- JDependのメトリックスレポートを出力する。
- javancss-maven-plugin
- JavaNCSSのメトリックスレポートを出力する。
- findbugs-maven-plugin
Mavenレポジトリの設定
<pluginRepositories> <pluginRepository> <id>Codehaus repository</id> <url>http://repository.codehaus.org/</url> </pluginRepository> </pluginRepositories>
プロジェクトの共通の設定
主に文字コードとコンパイラバージョンを設定します。
これらのプロパティに対応しているプラグインでは設定パラメタの記述を省略し、対応していないプラグインはこのプロパティ設定を参照するようにしています。
<properties> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> <maven.compiler.target>1.6</maven.compiler.target> <maven.compiler.source>1.6</maven.compiler.source> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>
ビルドプラグインの設定
cobertura-maven-pluginの設定
カバレッジ測定用の設定。
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <version>2.4</version> <configuration> <instrumentation> <excludes> <exclude>**/*Test.class</exclude> </excludes> </instrumentation> </configuration> <executions> <execution> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin>
レポートプラグインの設定
maven-site-pluginの設定
※maven-site-plugin2.1を使うには、Maven 2.1.x 以降が必要です。
わざわざinputEncoding,outputEncodingを指定しているのは、指定しないとmavenプロパティの設定が使われず、ISO-8859-1が使われてしまうためです。
<plugin> <artifactId>maven-site-plugin</artifactId> <version>2.1</version> <configuration> <locales>ja</locales> <inputEncoding>${project.build.sourceEncoding}</inputEncoding> <outputEncoding>${project.reporting.outputEncoding}</outputEncoding> </configuration> </plugin>
maven-jxr-pluginの設定
<plugin> <artifactId>maven-jxr-plugin</artifactId> <version>2.1</version> <configuration> <aggregate>true</aggregate> <inputEncoding>${project.build.sourceEncoding}</inputEncoding> <outputEncoding>${project.reporting.outputEncoding}</outputEncoding> </configuration> </plugin>
maven-surefire-report-pluginの設定
<plugin> <artifactId>maven-surefire-report-plugin</artifactId> <version>2.5</version> <configuration> <showSuccess>false</showSuccess> </configuration> </plugin>
maven-checkstyle-pluginの設定
<plugin> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.5</version> </plugin>
maven-pmd-pluginの設定
<plugin> <artifactId>maven-pmd-plugin</artifactId> <version>2.5</version> <configuration> <targetJdk>${maven.compiler.target}</targetJdk> </configuration> <reportSets> <reportSet> <reports> <report>pmd</report> <report>cpd</report> </reports> </reportSet> </reportSets> </plugin>
findbugs-maven-pluginの設定
※maven-site-pluginでlocaleをjaにしていると、文字化けを起こします。どうもwindows環境だとプラットフォームのデフォルトエンコーディングが優先されているみたいなのですが対処方法が分かりません。
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>findbugs-maven-plugin</artifactId> <version>2.3.1</version> <configuration> <inputEncoding>${project.build.sourceEncoding}</inputEncoding> <outputEncoding>${project.reporting.outputEncoding}</outputEncoding> </configuration> </plugin>
cobertura-maven-pluginの設定
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <version>2.4</version> <configuration> <formats> <format>html</format> </formats> </configuration> </plugin>
jdepend-maven-pluginの設定
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jdepend-maven-plugin</artifactId> <version>2.0-beta-2</version> </plugin>
javancss-maven-pluginの設定
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>javancss-maven-plugin</artifactId> <version>2.0</version> </plugin>
まとめ
<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"> <modelVersion>4.0.0</modelVersion> <groupId>example</groupId> <artifactId>maven-report-example</artifactId> <version>1.0-SNAPSHOT</version> <name>maven-report-example</name> <properties> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> <maven.compiler.target>1.6</maven.compiler.target> <maven.compiler.source>1.6</maven.compiler.source> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <pluginRepositories> <pluginRepository> <id>Codehaus repository</id> <url>http://repository.codehaus.org/</url> </pluginRepository> </pluginRepositories> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-library</artifactId> <version>1.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.1</version> <configuration> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <version>2.4</version> <configuration> <instrumentation> <excludes> <exclude>**/*Test.class</exclude> </excludes> </instrumentation> </configuration> <executions> <execution> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> </plugin> </plugins> </build> <reporting> <plugins> <plugin> <artifactId>maven-site-plugin</artifactId> <version>2.1</version> <configuration> <locales>ja</locales> <inputEncoding>${project.build.sourceEncoding}</inputEncoding> <outputEncoding>${project.reporting.outputEncoding}</outputEncoding> </configuration> </plugin> <plugin> <artifactId>maven-jxr-plugin</artifactId> <version>2.1</version> <configuration> <aggregate>true</aggregate> <inputEncoding>${project.build.sourceEncoding}</inputEncoding> <outputEncoding>${project.reporting.outputEncoding}</outputEncoding> </configuration> </plugin> <plugin> <artifactId>maven-surefire-report-plugin</artifactId> <version>2.5</version> <configuration> <showSuccess>false</showSuccess> </configuration> </plugin> <plugin> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.5</version> </plugin> <plugin> <artifactId>maven-pmd-plugin</artifactId> <version>2.5</version> <configuration> <targetJdk>${maven.compiler.target}</targetJdk> </configuration> <reportSets> <reportSet> <reports> <report>pmd</report> <report>cpd</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>findbugs-maven-plugin</artifactId> <version>2.3.1</version> <configuration> <inputEncoding>${project.build.sourceEncoding}</inputEncoding> <outputEncoding>${project.reporting.outputEncoding}</outputEncoding> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <version>2.4</version> <configuration> <formats> <format>html</format> </formats> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jdepend-maven-plugin</artifactId> <version>2.0-beta-2</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>javancss-maven-plugin</artifactId> <version>2.0</version> </plugin> </plugins> </reporting> </project>