Kapt: 'kaptKotlin' task should be invoked only when all task dependencies from kapt configuration is built (KT-19178)
This commit is contained in:
+10
-4
@@ -24,9 +24,9 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.artifacts.Dependency
|
import org.gradle.api.artifacts.Dependency
|
||||||
import org.gradle.api.tasks.SourceSet
|
import org.gradle.api.tasks.SourceSet
|
||||||
|
import org.gradle.api.tasks.TaskDependency
|
||||||
import org.gradle.api.tasks.compile.AbstractCompile
|
import org.gradle.api.tasks.compile.AbstractCompile
|
||||||
import org.gradle.api.tasks.compile.JavaCompile
|
import org.gradle.api.tasks.compile.JavaCompile
|
||||||
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.tasks.CompilerPluginOptions
|
import org.jetbrains.kotlin.gradle.tasks.CompilerPluginOptions
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
@@ -132,6 +132,7 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
|||||||
assert((variantData != null) xor (javaSourceSet != null))
|
assert((variantData != null) xor (javaSourceSet != null))
|
||||||
|
|
||||||
val kaptClasspath = arrayListOf<File>()
|
val kaptClasspath = arrayListOf<File>()
|
||||||
|
val buildDependencies = arrayListOf<TaskDependency>()
|
||||||
|
|
||||||
fun handleSourceSet(sourceSetName: String) {
|
fun handleSourceSet(sourceSetName: String) {
|
||||||
val kaptConfiguration = project.findKaptConfiguration(sourceSetName)
|
val kaptConfiguration = project.findKaptConfiguration(sourceSetName)
|
||||||
@@ -139,9 +140,12 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
|||||||
it.group != getGroupName() || it.name != getArtifactName()
|
it.group != getGroupName() || it.name != getArtifactName()
|
||||||
} ?: emptyList()
|
} ?: emptyList()
|
||||||
|
|
||||||
if (kaptConfiguration != null && filteredDependencies.isNotEmpty()) {
|
if (kaptConfiguration != null) {
|
||||||
javaCompile.dependsOn(kaptConfiguration.buildDependencies)
|
buildDependencies += kaptConfiguration.buildDependencies
|
||||||
kaptClasspath.addAll(kaptConfiguration.resolve())
|
|
||||||
|
if (filteredDependencies.isNotEmpty()) {
|
||||||
|
kaptClasspath.addAll(kaptConfiguration.resolve())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,6 +173,8 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
|||||||
val kaptGenerateStubsTask = context.createKaptGenerateStubsTask()
|
val kaptGenerateStubsTask = context.createKaptGenerateStubsTask()
|
||||||
val kaptTask = context.createKaptKotlinTask()
|
val kaptTask = context.createKaptKotlinTask()
|
||||||
|
|
||||||
|
kaptTask.dependsOn(*buildDependencies.toTypedArray())
|
||||||
|
|
||||||
kaptGenerateStubsTask.dependsOn(*kotlinCompile.dependsOn.toTypedArray())
|
kaptGenerateStubsTask.dependsOn(*kotlinCompile.dependsOn.toTypedArray())
|
||||||
kaptTask.dependsOn(kaptGenerateStubsTask)
|
kaptTask.dependsOn(kaptGenerateStubsTask)
|
||||||
kotlinCompile.dependsOn(kaptTask)
|
kotlinCompile.dependsOn(kaptTask)
|
||||||
|
|||||||
Reference in New Issue
Block a user