【Jenkins】GradleでSpotbugsを導入する

GradleをビルドツールとするJavaソースに対して、Jenkinsの環境構築を行っています。その中で静的解析ツール Spotbugsの設定について行ったので、ここにメモを残します。SpotBugsはFindBugsの後継のようですね。個人的にはちょっと衝撃を受けたところを考えると、自分が時代遅れの人間のようです。

さて、実施した時の環境は記載しますが、Jenkinsのインストールや基本操作はここでは触れないため、ご注意ください。また、Jenkins、プラグイン、ツールのバージョンによって表示が変わるかもしれませんが、そこはご了承ください。

環境

項目バージョン
Jenkins2.332.1
OpenJDK1.8.0_322
Gradle7.4.1
SpotBugs4.3.0

SpotBugsのバージョンはGragleのバージョンによって紐づくようです。以下のページを参照してください。
https://github.com/spotbugs/spotbugs-gradle-plugin#spotbugs-version-mapping

Jenkinsのジョブ設定でGitなどのソースコード管理ツールから取得できることを前提とします。

GradleでSpotBugsを導入する

ビルドを定義する設定ファイル build.gradle に以下を記載します。

plugins {
    id 'java'
    id "com.github.spotbugs" version "4.3.0" // 追記
}

//以下をすべて追記 
spotbugs {
  ignoreFailures = true
}

JenkinsでのビルドでSpotBugsが正常に実行できているにも関わらず、エラーが発生し失敗することがあります。そこでビルド実行を続行させるために、「ignoreFailures」をtrueにします。詳細は、以下のドキュメントを確認してください。
https://spotbugs-gradle-plugin.netlify.app/com/github/spotbugs/snom/spotbugsextension

JenkinsでSpotBugsの結果を表示する

さて、ここからJenkinsの設定に入ります。

上で設定したものについて、実際にJenkinsでビルドが通るかを試してみましょう。その方法は以前書いた記事にあるので、参考にしてください。ビルド実行でエラーが出た場合も書いたので、参考になると思います。
【Jenkins】GradleでCheckstyleを導入する - 3. JenkinsでCheckStyleのビルドタスクを実行する

また、JenkinsにSpotBugsを解析するためのプラグインをインストールしていない場合は、[Jenkinsの管理] > [プラグインの管理] > [利用可能タブ]の検索で「warnings」と入力し、「Warnings Next Generation」を選択してからインストールしてください。昔はCheckStyle用のプラグインがあったのですが、廃止になりました。

さてジョブの設定ですが、まず[ビルド後の処理追加]から [Record compiler warning and analysis results] を選択します。

あとは自分のソースに合わせて設定を変更します。

項目説明設定値
Tool解析ツールの選択SpotBugs
Report File Pattern実行結果ファイルのパス(設定値がワークスペースに表示されているパスに合わせてください)build/reports/spotbugs/*.xml

これで設定は完了です。ビルド実行を行い、以下のように結果を表示することができたら問題ありません。

参考