diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt index 6aa1002f402..8af92314d94 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt @@ -21,7 +21,7 @@ import kotlin.test.assertFalse import kotlin.test.assertTrue class NewMultiplatformIT : BaseGradleIT() { - val gradleVersion = GradleVersionRequired.AtLeast("4.8") + val gradleVersion = GradleVersionRequired.AtLeast("4.7") val nativeHostTargetName = when { HostManager.hostIsMingw -> "mingw64" 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 30ca580baee..85b92dcf2bc 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 @@ -132,8 +132,7 @@ class KotlinMultiplatformPlugin( publishTask.onlyIf { publishTask.publication != rootPublication || project.multiplatformExtension!!.isGradleMetadataAvailable } } - // Create separate publications for all publishable targets - targets.matching { it.publishable }.all { target -> + fun createTargetPublication(target: KotlinTarget) { val variant = target.component as KotlinVariant val name = target.name @@ -156,6 +155,10 @@ class KotlinMultiplatformPlugin( it.execute(variantPublication) } } + + // Enforce the order of creating the publications, since the metadata publication is used in the other publications: + createTargetPublication(targets.getByName(METADATA_TARGET_NAME)) + targets.matching { it.publishable && it.name != METADATA_TARGET_NAME }.all(::createTargetPublication) } project.components.add(kotlinSoftwareComponent)