Gradle で FindBugs してみる

Gradle で FindBugs する方法については id:kyon_mm さんが既に 『Gradleで簡単にFindBugsを使えるようにしてみた』で書かれていますが、 折角なので、もう少しいい感じにしてみました。

変更点は5つ...

  • インクリメンタルビルドに対応した
  • ライブラリの取得処理を簡素化した
  • SourceSet 毎に実行できるようにした
  • compile<SourceSet>Java タスクを依存関係に追加した
  • check タスクで実行できるようにした

肝心の Gradle スクリプトはこんな感じです。
もちろん、例のごとく Ant タスクを利用しています。
既存の資産がそのまま使えるのが Gradle のいいところ...

もし、このGradle スクリプトを利用する場合は、プロジェクトの gradle 配下に findbugs.gradle というファイル名で保存して、build.gradle に

apply from: 'gradle/findbugs.gradle'
を追加するだけで良いです。もしくは、
fileTree(dir: 'gradle', includes: ['*.gradle']).each { apply from: it }
のように gradle 配下の Gradle スクリプトを全て読み込むようにしておいた方が便利かもしれません。
後は check タスクを
gradle check
のように実行するだけで、コンパイル後に FindBugs が実行され build/reports/findbugs 配下にレポートを作成してくれます。