Я провел несколько тестов на своей стороне, и мне удалось заставить его работать так:
1) Переместите объявление sourceSets
за пределы блока android
.Оставьте это пустым, это только для генерации задач spotbugsMain
, это не повлияет на глобальную сборку Android.
android {
// ...
}
sourceSets {
main {
java.srcDirs = []
}
}
2) Сохраните блок spotbugs
и настройте задачи SpotBugsTask
следующим образом:
tasks.withType(com.github.spotbugs.SpotBugsTask) {
classes = files("$projectDir.absolutePath/build/intermediates/classes/debug")
source = fileTree('src/main/java')
}
Он будет генерировать отчеты в app/build/findbugsReports
Важно:
Работает только с командой ./gradlew build
, ./gradlew spotbugsMain
не будет работать, так как проект должен быть построен до
Вы можете исправить это, добавив assemble
зависимость:
tasks.withType(com.github.spotbugs.SpotBugsTask) {
dependsOn 'assemble'
classes = files("$projectDir.absolutePath/build/intermediates/classes/debug")
source = fileTree('src/main/java')
}