Spring Bootのbuild.gradleのタスクでSpotBugsレポート出力する方法
GradleタスクでSpotBugsのレポートをHTML形式で出力します。
SpotBugs4.0.0
環境 | バージョン |
---|---|
Spring Boot | 2.2.5.RELEASE |
Gradleラッパー | 6.2.2 |
Java | 11 |
SpotBugs | 4.0.0 |
build.gradle
plugins { id 'org.springframework.boot' version '2.2.5.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java' id 'com.github.spotbugs' version '3.0.0' } // 省略 spotbugs { toolVersion = '4.0.0' ignoreFailures = true reportsDir = file("$project.buildDir/reports") effort = "max" reportLevel = "high" } sourceSets { main { java.srcDirs = ['src/main/java'] } } tasks.withType(com.github.spotbugs.SpotBugsTask) { reports.xml.enabled = false reports.html.enabled = true }
build.gradleに記述しているディレクトリは以下の場所になります。
変数 | 値 |
---|---|
$project.buildDir | C:\workspace\gradle-proj\build |
これでgradlew.bat tasks --all
を実行すれば、spotbugsMain,spotbugsTestがタスク追加されていることがわかります。
レポートは、reportDirプロパティで指定された場所、もしくはデフォルトだとbuild\reports配下に出力されます。
SpotBugsのプラグイン(fb-contrib)を使う
レポート出力する際にfb-contribを使ってレポート出力します。
dependenciesに3行追加します。
plugins { id 'org.springframework.boot' version '2.2.5.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java' id 'com.github.spotbugs' version '3.0.0' } dependencies { // 省略 compileOnly 'com.github.spotbugs:spotbugs:4.0.0' spotbugs configurations.spotbugsPlugins.dependencies spotbugsPlugins 'com.mebigfatguy.fb-contrib:fb-contrib:7.4.7' } spotbugs { toolVersion = '4.0.0' ignoreFailures = true reportsDir = file("$project.buildDir/findbugsReports") effort = 'max' reportLevel = 'medium' } sourceSets { main { java.srcDirs = ['src/main/java'] } } tasks.withType(com.github.spotbugs.SpotBugsTask) { reports.xml.enabled = false reports.html.enabled = true pluginClasspath = project.configurations.spotbugsPlugins // 追加 }
SpotBugs4.6.0
環境 | バージョン |
---|---|
Spring Boot | 2.5.12 |
Gradleラッパー | 7.4.1 |
Java | 11 |
SpotBugs | 4.6.0 |
SpotBugs4.6.0でレポート出力します。
build.gradle
plugins { id 'org.springframework.boot' version '2.5.12' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'com.github.spotbugs' version '5.0.6' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' compileOnly "com.github.spotbugs:spotbugs:4.6.0" spotbugsPlugins "com.mebigfatguy.fb-contrib:fb-contrib:7.4.7" } tasks.named('test') { useJUnitPlatform() } spotbugs { toolVersion = "4.6.0" spotbugsTest.enabled = false } spotbugsMain { reports { html { enabled = true } } }
build\reports\spotbugs配下にmain.htmlが出力されます。
参考サイト
SpotBugs 3.1から4.0への移行ガイド — spotbugs 4.8.6 ドキュメント
SpotBugsExtension (SpotBugs Gradle Plugin)
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント