Gradleで簡単にFindBugsを使えるようにしてみた
Gradleというビルドツールを使っているのですが、とっても便利です。
いろんなプラグインがありまして、CheckStyleはcode-qualityプラグインとして提供されているのですが、
build.graldeファイルに
apply plugin: java apply plugin: 'code-quality' defaultTasks 'clean', 'check', 'jar' repositories { mavenCentral() } dependencies { testCompile 'junit:junit:4.+' }
とだけ書いて、標準の構成で実行すればcheckstyle実行、フルコンパイル、テスト、jar生成までやってくれます。
素敵ですね!
AntとかMavenのxml地獄とおさらばです。
GradleではMavenリポジトリが使えます。
なので指定したライブラリはビルド初回時にダウンロードしてくれます。
FindBugsも使っていたのですが、あらかじめダウンロードしたjarを指定していたので、Mavenリポジトリのものに変更してみました。
ところが、FindBugsにはGradleのプラグインがないのでMavenリポジトリからダウンロードしたものをAntタスクとして実行するとパスの関係で失敗してしまいます。
うむ。ということで、なんとなくうまくパスを解決してそのまま簡単に実行できるようにしたい。
ということで、ちょっとしたGradleスクリプトを書いてみました。
findbugs.gradleダウンロード→ https://gist.github.com/955213
ダウンロードファイルを解凍するとfindbugs.gradleが入っているので、build.gradleと同じパスとかに配備してください。
あとはbuild.gradleを3行編集するだけ。
applu plugin: java apply from: './findbugs.gradle' //build.gradleからの相対パス。左はbuild.gradleと同じ場所に置いた場合。 apply plugin: 'code-quality' defaultTasks 'clean', 'check', 'jar', 'findbugs' //タスクに'findbugs'を追加。 repositories { mavenCentral() } dependencies { testCompile 'junit:junit:4.+' findbugsConf 'com.google.code.findbugs:findbugs:1.3.9', 'com.google.code.findbugs:findbugs-ant:1.3.9' // Mavenリポジトリからfindbugsをダウンロード }
これで実行すると、checkstyle実行、フルコンパイル、テスト、jar生成、FindBugs実行までやってくれます。
FindBugsのレポートは/build/reports/findbugs/findbugs_result.htmlとして生成されます。
findbugs.gradleの中でやっているのはパス解決が面倒なので、すべて一カ所にjarをコピーするという荒技をやっています。しかもコード汚い><。
あと各種設定もなんかいろいろやっています。レポートの種類を変えたいときとかは
FindBugsPluginConventionのコンストラクタで設定している値を変更してください。
本当はAntBuilderの素晴らしさとか活かして、AntのプロパティをGradleの中でいじると素敵な感じなのですが、
今ひとつわかりませんでした。今度挑戦してみます。