From e17aa5efaaeab4719774b055fbc2842fb5c7f686 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 22 Feb 2021 19:18:31 +0100 Subject: [PATCH] Change source jar duplication error to warning. For now Gradle 7 will print warnings on publishing sources jar containing duplicate files. Duplicates are coming from SourceSets SourceSet added to sources jar task depends on. Such approach should be rethought. ^KT-44949 In Progress --- .../kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index 99a46cb2018..de8372e63ff 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -10,6 +10,7 @@ import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.attributes.Attribute import org.gradle.api.attributes.AttributeContainer +import org.gradle.api.file.DuplicatesStrategy import org.gradle.api.internal.FeaturePreviews import org.gradle.api.internal.plugins.DslObject import org.gradle.api.plugins.JavaBasePlugin @@ -316,6 +317,10 @@ internal fun sourcesJarTask( sourceSets.value.forEach { sourceSet -> it.from(sourceSet.kotlin) { copySpec -> copySpec.into(sourceSet.name) + // Duplicates are coming from `SourceSets` that `sourceSet` depends on. + // Such dependency was added by Kotlin compilation. + // TODO: rethink approach for adding dependent `SourceSets` to Kotlin compilation `SourceSet` + copySpec.duplicatesStrategy = DuplicatesStrategy.WARN } } }