image

この記事では、Javaコードのバグを見つけるためにhttps://spotbugs.github.io/spotbugs-maven-plugin/[SpotBugs Maven Plugin]を使用する方法を説明します。


P.S SpotBugsにはJDK 1.8

が必要です

1. Maven SpotBugs Plugin


reporting`タグに

spotbugs-maven-plugin`を定義してください。そのため、 `mvn site`はSpotBugsレポートを生成します。

pom.xml

    <reporting>
        <plugins>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <version>3.1.8</version>
            </plugin>
        </plugins>
    </reporting>

2. Javaコード

未使用のフィールド ‘abc’と “string”ループでのパフォーマンスの問題を持つ単純なJavaコード。その後、SpotBugsはそれを検出してレポートに表示することができます。

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"};

       //concatenates strings using + in a loop
        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サイトを生成すると、SpotBugsレポートが生成され、自動的にMavenサイトに統合されます。

$ mvn compile site
[INFO]Generating "SpotBugs" report      --- spotbugs-maven-plugin:3.1.8:spotbugs[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. SpotBugsレポート

`target/site/spotbugs.html`のレポートを見直してください

リンク://wp-content/uploads/2018/11/maven-spotbugs-static-code.png[

image

]

5.よくある質問

5.1

SpotBugs 400のバグパターン

を確認します。

5.2その他のhttps://spotbugs.github.io/spotbugs-maven-plugin/usage.html[Maven SpotBugsプラグインのレシピはこちら]

ソースコードをダウンロードする

$ git clone

https://github.com/mkyong/maven-examples.git

$ cd maven-static-code-analysis $ mvnコンパイルサイト

#target/site/spotbugs.htmlのレポートを表示する