diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt index 6a9a1f549cc..493e31be131 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt @@ -364,8 +364,27 @@ class KotlinMetadataTargetConfigurator : } ) - if (sourceSet is DefaultKotlinSourceSet) + @Suppress("DEPRECATION") + if (sourceSet is DefaultKotlinSourceSet) { sourceSet.compileDependenciesTransformation = granularMetadataTransformation + + /* + Older IDEs still rely on resolving the metadata configurations explicitly. + Dependencies will be coming from extending the newer 'resolvableMetadataConfiguration'. + + the intransitiveMetadataConfigurationName will not extend this mechanism, since it only + relies on dependencies being added explicitly by the Kotlin Gradle Plugin + */ + listOf( + sourceSet.apiMetadataConfigurationName, + sourceSet.implementationMetadataConfigurationName, + sourceSet.compileOnlyMetadataConfigurationName + ).forEach { configurationName -> + val configuration = project.configurations.getByName(configurationName) + configuration.extendsFrom(sourceSet.resolvableMetadataConfiguration) + granularMetadataTransformation.applyToConfiguration(configuration) + } + } } /** Ensure that the [configuration] excludes the dependencies that are classified by this [GranularMetadataTransformation] as