Kapt: Register AP classpath as an input for "generate stubs" and "kapt" tasks

...so if the annotation processor artifact is changed, annotation processing will be relaunched.
This commit is contained in:
Yan Zhulanow
2017-11-29 22:18:54 +09:00
parent 9e43992094
commit 84a766de24
3 changed files with 11 additions and 0 deletions
@@ -303,7 +303,10 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
registerGeneratedJavaSource(kaptTask, javaCompile)
}
kaptTask.kaptClasspath = kaptClasspath
buildAndAddOptionsTo(kaptTask.pluginOptions, aptMode = "apt")
return kaptTask
}
@@ -321,6 +324,7 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
kaptTask.generatedSourcesDir = sourcesOutputDir
mapKotlinTaskProperties(project, kaptTask)
kaptTask.kaptClasspath = kaptClasspath
buildAndAddOptionsTo(kaptTask.pluginOptions, aptMode = "stubs")
return kaptTask
@@ -20,6 +20,7 @@ import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.SourceTask
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
import com.intellij.openapi.util.io.FileUtil
import org.gradle.api.tasks.InputFiles
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
import org.jetbrains.kotlin.gradle.tasks.FilteringSourceRootsContainer
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
@@ -39,6 +40,9 @@ open class KaptGenerateStubsTask : KotlinCompile() {
lateinit var generatedSourcesDir: File
@get:InputFiles
lateinit var kaptClasspath: List<File>
override fun source(vararg sources: Any?): SourceTask? {
return super.source(sourceRootsContainer.add(sources))
}
@@ -26,6 +26,9 @@ open class KaptTask : ConventionTask() {
|| FileUtil.isAncestor(classesDir, file, /* strict = */ false)
}
@get:InputFiles
lateinit var kaptClasspath: List<File>
@OutputDirectory
internal lateinit var classesDir: File