From 5023ccc72440298af1da45920d6ce8bee3479890 Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Thu, 1 Dec 2022 09:15:23 +0100 Subject: [PATCH] [Gradle] Keep `kotlinSourcesJar` in Kotlin/JVM projects After introducing sourcesElements for Multiplatform projects the task was not registered. As result of an assumption that Java Gradle Plugin is taking care of sources publication. But in fact some users can still rely on Kotlin's `kotlinSourceJar` task instead of JGP's `sourcesJar`. This look inconsistent and is a matter of a different issue: KT-54207 ^KT-36943 --- .../kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt index 792a1065ec2..93782e236d7 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt @@ -133,11 +133,13 @@ abstract class AbstractKotlinTarget( classifierPrefix: String? = null, sourcesElementsConfigurationName: String = this.sourcesElementsConfigurationName, ): PublishArtifact? { + val sourcesJarTask = sourcesJarTask(producingCompilation, componentName, artifactNameAppendix) + // If sourcesElements configuration not found, don't create artifact. - // This can happen in pure JVM plugin where source publication is delegated to Java Gradle Plugin + // This can happen in pure JVM plugin where source publication is delegated to Java Gradle Plugin. + // But we still want to have sourcesJarTask be registered project.configurations.findByName(sourcesElementsConfigurationName) ?: return null - val sourcesJarTask = sourcesJarTask(producingCompilation, componentName, artifactNameAppendix) val artifact = project.artifacts.add(sourcesElementsConfigurationName, sourcesJarTask) as ConfigurablePublishArtifact artifact.classifier = dashSeparatedName(classifierPrefix, "sources") return artifact