package org.thejk import org.gradle.api.DefaultTask import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.compile.JavaCompile class FlycheckAndroidJavaTask extends DefaultTask { FlycheckAndroidJavaTask() { } @TaskAction def action() { def variants = [] def android = project.extensions.findByName('android') if (android && (android.class.simpleName == 'AppExtension_Decorated' || android.class.simpleName == 'BaseAppModuleExtension_Decorated')) { variants = android.applicationVariants.collect { it.name } } else if (android && android.class.simpleName == 'LibraryExtension_Decorated') { variants = android.libraryVariants.collect { it.name } } else { def buildTypes = project.extensions.buildTypes.names if (buildTypes.isEmpty()) buildTypes = ['debug', 'release'] def flavors = project.extensions.flavors.names if (flavors.isEmpty()) { variants = buildTypes } else { flavors.each { flavor -> buildTypes.each { buildType -> variants.add(flavor + buildType.capitalize()) } } } } variants = variants.sort() def configurations = ['', 'UnitTest'] variants.each { variant -> configurations.each { configuration -> def name = 'compile' name += variant.capitalize() name += configuration.capitalize() + 'JavaWithJavac' def compile = project.tasks.findByName(name) if (compile) { try { def cp = compile.classpath.asPath def bootcp = '' if (compile.options.hasProperty('bootClasspath')) { bootcp = compile.options.bootClasspath } else if (compile.options.hasProperty('bootstrapClasspath')) { bootcp = compile.options.bootstrapClasspath.asPath } println '***' println 'variant=' + variant println 'args=' + compile.options.compilerArgs.findAll { !it.startsWith('-X') } println 'encoding=' + compile.options.encoding println 'bootcp=' + bootcp println 'cp=' + cp println 'source=' + compile.sourceCompatibility println 'target=' + compile.targetCompatibility println 'files=' + compile.inputs.files.asPath println 'output=' + compile.destinationDir } catch (Throwable t) { } } } def name = 'generate' name += variant.capitalize() + 'Sources' def generate = project.tasks.findByName(name) if (generate != null) { println '!!!' println generate.path } } } }