Kotlin 多平台:使用 Gradle Kotlin dsl 跳过某些平台的发布

Kotlin multiplatform: Skipping publish of some platforms using Gradle Kotlin dsl

我有 Kotlin 多平台项目。我想将部分工件发布到存储库,跳过另一部分。 我正在使用以下配置:

kotlin {
    jvm()
    val iosArm64 = iosArm64()
    val iosX64 = iosX64()

    configure(listOf(iosArm64, iosX64)) {
        binaries {
            framework("some") {
                embedBitcode("disable")
            }
        }
    }
    ...
}

publishing {
    repositories {
        maven {
            ...
        }
    }

    publications {
        register("mavenJava", MavenPublication::class) {
            ...
        }
    }
}

例如,我想跳过 iosX64,因为我做了一个 "Fat framework" 并且我想发布它。如何配置 Gradle Kotlin dsl 以避免发布?

这可以使用 maven-publish 的任务配置来实现:

tasks.withType<PublishToMavenRepository>().configureEach {
    onlyIf {
        (publication.artifactId == "my-artifact-1") || (publication.artifactId == "my-artifact-2")
    }
}