SpotBugs Gradle プラグインの使い方¶
この章では,Gradle のビルドスクリプトに SpotBugs を統合する方法について説明します。
SpotBugs Gradle プラグインを使う¶
Gradle プラグインの公式ページ の指示に従ってください。
SpotBugs PluginはGradleバージョン4をサポートしません。バージョン5.1以降を使用してください。
Gradle プラグインによって導入されたタスク¶
Gradle プラグインには,spotbugsMain と spotbugsTest という2つのタスクが導入されています。
spotbugsMain タスクは,製品 Java ソースファイル用の SpotBugs を実行します。このタスクは classes タスクに依存します。spotbugsTest タスクは,テスト Java ソースファイル用の SpotBugs を実行します。このタスクは testClasses タスクに依存します。
SpotBugs Gradle プラグインは,check タスクからこれらのタスクにタスク依存関係を追加するので,単に ./gradlew check
を実行すれば SpotBugs を実行できます。
Gradle プラグインの設定¶
現バージョンの SpotBugs Gradle プラグインは FindBugs Gradle プラグインと同じ方法で設定します。FindBugsExtension のドキュメントを参照してください。
たとえば,SpotBugs のバージョンを指定したいときは,次のように設定します。
spotbugs {
toolVersion = '4.0.0-RC2'
}
SpotBugs Pluginを利用する¶
SpotBugs Pluginを利用するには,プラグインへの依存を次のように dependencies
内に記載してください:
dependencies {
spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.7.1'
}
Android Gradle プラグインで SpotBugs タスクを生成する¶
SpotBugs Gradle プラグインは,sourceSet ごとにタスクを生成します。しかし,Android Gradle プラグインは,デフォルトでは sourceSet を生成しません (Java プラグインでは)。
sourceSet を明示的に定義すると,SpotBugs Gradle プラグインは sourceSet ごとにタスクを生成します。
sourceSets {
// we define `main` sourceSet here, so SpotBugs Gradle Plugin generates `spotbugsMain` task
main {
java.srcDirs = ['src/main/java']
}
}
tasks.withType(com.github.spotbugs.SpotBugsTask) {
// configure automatically generated tasks
}