image

この記事では、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[

image

]

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のレポートを表示する

参考文献

静的コード解析ツールの紹介]