diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinTargetVariantResourcesResolutionTests.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinTargetVariantResourcesResolutionTests.kt index 238d9534cf6..8dc294b9048 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinTargetVariantResourcesResolutionTests.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/KotlinTargetVariantResourcesResolutionTests.kt @@ -14,6 +14,7 @@ import org.gradle.api.artifacts.ResolveException import org.gradle.api.attributes.Attribute import org.gradle.api.attributes.Usage import org.gradle.api.internal.project.ProjectInternal +import org.gradle.internal.component.NoMatchingConfigurationSelectionException import org.gradle.kotlin.dsl.project import org.gradle.testfixtures.ProjectBuilder import org.jetbrains.kotlin.gradle.dependencyResolutionTests.mavenCentralCacheRedirector @@ -359,6 +360,45 @@ class KotlinTargetVariantResourcesResolutionTests { } } + @Test + fun `test KT66393 - resolving resources with java-api dependencies in native configuration`() { + val resolutionStrategy = KotlinTargetResourcesResolutionStrategy.ResourcesConfiguration + val rootProject = buildProject() + val producer = rootProject.createSubproject("producer") { + kotlin { + linuxArm64() + sourceSets.commonMain { + dependencies { + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") + } + } + setMppResourcesResolutionStrategy(resolutionStrategy) + } + } + val consumer = rootProject.createSubproject("consumer") { + kotlin { + linuxArm64() + sourceSets.commonMain { + dependencies { + implementation(project(":${producer.name}")) + } + } + setMppResourcesResolutionStrategy(resolutionStrategy) + } + } + + listOf(rootProject, producer, consumer).forEach { it.evaluate() } + producer.publishFakeResources(producer.multiplatformExtension.linuxArm64()) + + assert( + assertThrows { + resolutionStrategy.resourceArchives( + consumer.multiplatformExtension.linuxArm64().compilations.getByName("main") + ).files + }.cause?.cause is NoMatchingConfigurationSelectionException + ) + } + private fun dependencyScopesWithResources(): List { return listOf( { this::implementation },