My Gradle plugin does this:
project.afterEvaluate {
File outDir = project.file("${project.buildDir}/generated/odmf")
// will be SourceSet or AndroidSourceSet
def main
Set<File> assets
if (project.hasProperty("android")) {
main = project.android.sourceSets.main
assets = main.assets.srcDirs as Set<File>
} else {
main = project.sourceSets.main
assets = main.resources.srcDirs as Set<File>
}
main.java.srcDir(outDir)
// declare task which will generate Java source in outDir
}
in order to add a generated source directory in both java and com.android.application projects. The files get generated in both cases, but gradlew build only sees and compiles the generated files in Java projects, not in Android ones. Looking at the documentation, it looks like this should work for Android as well. Why doesn’t it and how can I fix the problem?