diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt index 8245727ebaa..55db4423a16 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt @@ -282,11 +282,16 @@ class SimpleKotlinGradleIT : KGPBaseTest() { buildGradle.appendText( """ | - |tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile.class).configureEach { - | if (it.name == "compileKotlin") { - | it.destinationDirectory.set(project.layout.buildDirectory.dir("banana")) - | } + |def compileKotlinTask = tasks.named("compileKotlin", org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile.class) + | + |compileKotlinTask.configure { + | it.destinationDirectory.set(project.layout.buildDirectory.dir("banana")) |} + | + |def compileKotlinTaskOutput = compileKotlinTask.flatMap { it.destinationDirectory } + |sourceSets.test.compileClasspath.from(compileKotlinTaskOutput) + |sourceSets.test.runtimeClasspath.from(compileKotlinTaskOutput) + | """.trimMargin() ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationAssociator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationAssociator.kt index fdaa7621eb4..ba3efa93f2c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationAssociator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationAssociator.kt @@ -7,8 +7,10 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl import org.gradle.api.Project import org.gradle.api.artifacts.Dependency +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.jvm import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinCompilation +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.plugin.mpp.isTest import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget @@ -76,7 +78,11 @@ internal object KotlinNativeCompilationAssociator : KotlinCompilationAssociator internal object KotlinJvmCompilationAssociator : KotlinCompilationAssociator { override fun associate(target: KotlinTarget, auxiliary: InternalKotlinCompilation<*>, main: InternalKotlinCompilation<*>) { /* Main to Test association handled already by java plugin */ - if (target is KotlinJvmTarget && target.withJavaEnabled && auxiliary.isTest() && main.isMain()) { + if ( + ((target is KotlinWithJavaTarget<*, *> && target.platformType == jvm) || + (target is KotlinJvmTarget && target.withJavaEnabled)) && + auxiliary.isTest() && main.isMain() + ) { return } else DefaultKotlinCompilationAssociator.associate(target, auxiliary, main) }