Maven – PMDの例
この記事では、https://maven.apache.org/plugins/maven-pmd-plugin/[Maven PMD Plugin]を使用してJavaコードを分析する方法を説明します。
P.S PMDにはJava 1.7
が必要です
1. Maven PMD Plugin
maven-pmd-plugin`を
reporting`タグに定義して、 `mvn site`がPMDレポートを生成するようにします。
pom.xml
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>3.11.0</version> </plugin> </plugins> </reporting>
2. Javaコード
単純なJavaコード。 Maven PMDプラグインを使用してこのコードを分析し、問題をレポートに表示します。
package com.mkyong.examples; public class StaticCodeExample { //Unused field private int abc; private String ip = "127.0.0.1"; public void test() { String[]field = {"a", "b", "c", "s", "e"}; String s = ""; for (int i = 0; i < field.length; ++i) { s = s + field[i]; } System.out.println(ip); } }
3. Mavenサイト
`mvn compile site`を実行してJavaプロジェクトのMavenサイトを生成すると、PMDレポートが生成され、自動的にMavenサイトに統合されます。
$ mvn compile site [INFO]Generating "PMD" report --- maven-pmd-plugin:3.11.0:pmd[INFO]Generating "Dependency Information" report --- maven-project-info-reports-plugin:3.0.0:dependency-info[INFO]Generating "About" report --- maven-project-info-reports-plugin:3.0.0:index[INFO]Generating "Plugin Management" report --- maven-project-info-reports-plugin:3.0.0:plugin-management[INFO]Generating "Plugins" report --- maven-project-info-reports-plugin:3.0.0:plugins[INFO]Generating "Summary" report --- maven-project-info-reports-plugin:3.0.0:summary[INFO]------------------------------------------------------------------------[INFO]BUILD SUCCESS[INFO]------------------------------------------------------------------------[INFO]Total time: 7.732 s[INFO]Finished at: 2018-11-19T15:38:56+08:00[INFO]------------------------------------------------------------------------
4. PMDレポート
`target/site/pmd.html`のレポートを見直してください
リンク://wp-content/uploads/2018/11/maven-pmd-static-code.png[
]
5.よくある質問
5.1
https://pmd.github.io/pmd-6.9.0/pmd
rules
java.html[JavaのためのPMD組み込みルール]をすべて確認します。
ソースコードをダウンロードする
$ git clone
https://github.com/mkyong/maven-examples.git
$ cd maven-static-code-analysis $ mvnコンパイルサイト
#target/site/pmd.htmlのレポートを表示する