diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index 9bdea4d1f35..88890f12581 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -48,8 +48,6 @@ class KotlinMultiplatformPlugin : Plugin { METADATA_TARGET_NAME ) project.registerKotlinArtifactsExtension() - - configurePublishingWithMavenPublish(project) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt index 2984b6aa10f..fdb9ca78f5a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt @@ -28,15 +28,17 @@ import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnab import org.jetbrains.kotlin.gradle.tooling.buildKotlinToolingMetadataTask import org.jetbrains.kotlin.gradle.utils.whenEvaluated -internal fun configurePublishingWithMavenPublish(project: Project) = project.pluginManager.withPlugin("maven-publish") { - if (project.kotlinPropertiesProvider.createDefaultMultiplatformPublications) { - project.extensions.configure(PublishingExtension::class.java) { publishing -> - createRootPublication(project, publishing) - createTargetPublications(project, publishing) +internal val MultiplatformPublishingSetupAction = KotlinProjectSetupAction { + project.pluginManager.withPlugin("maven-publish") { + if (project.kotlinPropertiesProvider.createDefaultMultiplatformPublications) { + project.extensions.configure(PublishingExtension::class.java) { publishing -> + createRootPublication(project, publishing) + createTargetPublications(project, publishing) + } } - } - project.components.add(project.multiplatformExtension.rootSoftwareComponent) + project.components.add(project.multiplatformExtension.rootSoftwareComponent) + } } /** @@ -163,4 +165,4 @@ internal fun Configuration.configureSourcesPublicationAttributes(target: KotlinT // however for Java Gradle Plugin compatibility and in order to prevent weird Variant Resolution errors we include this attribute attributes.attribute(Bundling.BUNDLING_ATTRIBUTE, project.attributeValueByName(Bundling.EXTERNAL)) usesPlatformOf(target) -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt index 4c41ff0511c..3c61171595c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.WasmSourceSetsNot import org.jetbrains.kotlin.gradle.plugin.ide.IdeMultiplatformImportSetupAction import org.jetbrains.kotlin.gradle.plugin.ide.IdeResolveDependenciesTaskSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.GlobalProjectStructureMetadataStorageSetupAction +import org.jetbrains.kotlin.gradle.plugin.mpp.MultiplatformPublishingSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.SyncLanguageSettingsWithKotlinExtensionSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.UserDefinedAttributesSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AddBuildListenerForXCodeSetupAction @@ -59,6 +60,7 @@ internal fun Project.registerKotlinPluginExtensions() { } if (isMultiplatform) { + register(project, MultiplatformPublishingSetupAction) register(project, LanguageSettingsSetupAction) register(project, GlobalProjectStructureMetadataStorageSetupAction) register(project, IdeMultiplatformImportSetupAction)