【Jenkins】GradleでSpotbugsを導入する
GradleをビルドツールとするJavaソースに対して、Jenkinsの環境構築を行っています。その中で静的解析ツール Spotbugsの設定について行ったので、ここにメモを残します。SpotBugsはFindBugsの後継のようですね。個人的にはちょっと衝撃を受けたところを考えると、自分が時代遅れの人間のようです。
さて、実施した時の環境は記載しますが、Jenkinsのインストールや基本操作はここでは触れないため、ご注意ください。また、Jenkins、プラグイン、ツールのバージョンによって表示が変わるかもしれませんが、そこはご了承ください。
環境
項目 バージョン Jenkins 2.332.1 OpenJDK 1.8.0_322 Gradle 7.4.1 SpotBugs 4.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] を選択します。
あとは自分のソースに合わせて設定を変更します。
これで設定は完了です。ビルド実行を行い、以下のように結果を表示することができたら問題ありません。
参考
- SpotBugs
https://spotbugs.github.io/ - SpotBugs Gradle Plugin - GitHub
https://github.com/spotbugs/spotbugs-gradle-plugin - FindBugsの後継としてのSpotBugsの紹介 - Kengo's blog
https://blog.kengo-toda.jp/entry/2017/09/26/231620