Maven - пример SpotBugs
В этой статье мы покажем вам, как использоватьSpotBugs Maven Plugin для поиска ошибок в коде Java.
Note
Findbugs is no longer maintained, и, таким образом, SpotBugs является духовным преемником FindBugs.
P.S SpotBugs requires JDK 1.8
1. Плагин Maven SpotBugs
Определитеspotbugs-maven-plugin
в тегеreporting
. Так чтоmvn site
сгенерирует отчет SpotBugs.
pom.xml
com.github.spotbugs spotbugs-maven-plugin 3.1.8
2. Java-код
Простой Java-код с неиспользуемым полем «abc» и проблемой производительности в цикле «+ string». Позже SpotBugs сможет обнаружить его и показать в отчете.
package com.example.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 Site
mvn compile site
для создания сайта Maven для проекта Java, отчет 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] ------------------------------------------------------------------------
Скачать исходный код
$ git clone https://github.com/example/maven-examples.git
$ cd maven-static-code-analysis
$ mvn compile site