diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt index 974cc89fcfc..e8f61bd1d12 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt @@ -24,9 +24,9 @@ import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency 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.JavaCompile -import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.tasks.CompilerPluginOptions import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -132,6 +132,7 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin { assert((variantData != null) xor (javaSourceSet != null)) val kaptClasspath = arrayListOf() + val buildDependencies = arrayListOf() fun handleSourceSet(sourceSetName: String) { val kaptConfiguration = project.findKaptConfiguration(sourceSetName) @@ -139,9 +140,12 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin { it.group != getGroupName() || it.name != getArtifactName() } ?: emptyList() - if (kaptConfiguration != null && filteredDependencies.isNotEmpty()) { - javaCompile.dependsOn(kaptConfiguration.buildDependencies) - kaptClasspath.addAll(kaptConfiguration.resolve()) + if (kaptConfiguration != null) { + buildDependencies += kaptConfiguration.buildDependencies + + if (filteredDependencies.isNotEmpty()) { + kaptClasspath.addAll(kaptConfiguration.resolve()) + } } } @@ -169,6 +173,8 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin { val kaptGenerateStubsTask = context.createKaptGenerateStubsTask() val kaptTask = context.createKaptKotlinTask() + kaptTask.dependsOn(*buildDependencies.toTypedArray()) + kaptGenerateStubsTask.dependsOn(*kotlinCompile.dependsOn.toTypedArray()) kaptTask.dependsOn(kaptGenerateStubsTask) kotlinCompile.dependsOn(kaptTask)