From b45065a5b2cee4e5d917c8bba41cf8f27eceb471 Mon Sep 17 00:00:00 2001 From: cketti Date: Wed, 20 May 2015 20:55:24 +0200 Subject: [PATCH] Improve FindBugs Gradle task Based on https://github.com/square/sqlbrite/blob/master/gradle/android-findbugs.gradle --- gradle/plugins/findbugs-android.gradle | 37 ++++++++++++++++++-------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/gradle/plugins/findbugs-android.gradle b/gradle/plugins/findbugs-android.gradle index ee83f1808..7a22caf72 100644 --- a/gradle/plugins/findbugs-android.gradle +++ b/gradle/plugins/findbugs-android.gradle @@ -1,14 +1,29 @@ apply plugin: 'findbugs' -check.dependsOn 'findbugs' -task findbugs(type: FindBugs, dependsOn: ['compileDebugJava', 'compileDebugTestJava']) { - ignoreFailures = true - classes = fileTree('build/intermediates/classes/debug/') + - fileTree('build/intermediates/classes/test/debug/') - source = project.android.sourceSets.main.java.getSrcDirs() + - project.android.sourceSets.androidTest.java.getSrcDirs() - classpath = files() - effort = 'max' - includeFilter = file("$rootProject.projectDir/config/findbugs/include_filter.xml") - excludeFilter = file("$rootProject.projectDir/config/findbugs/exclude_filter.xml") +afterEvaluate { + def variants = plugins.hasPlugin('com.android.application') ? + android.applicationVariants : android.libraryVariants + + variants.each { variant -> + def task = project.task("findBugs${variant.name.capitalize()}", type: FindBugs) { + group = 'verification' + description = "Run FindBugs for the ${variant.description}." + + effort = 'max' + ignoreFailures = true + + includeFilter = file("$rootProject.projectDir/config/findbugs/include_filter.xml") + excludeFilter = file("$rootProject.projectDir/config/findbugs/exclude_filter.xml") + + def variantCompile = variant.javaCompile + + classes = fileTree(variantCompile.destinationDir) + source = variantCompile.source + classpath = variantCompile.classpath.plus(project.files(android.bootClasspath)) + + dependsOn(variantCompile) + } + + tasks.getByName('check').dependsOn(task) + } }