Kotlin跨平台:使用Gradle Kotlin DSL跳过某些平台的发布

时间:2019-04-25 14:34:00

标签: gradle-kotlin-dsl kotlin-multiplatform

我有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,因为我做的是“胖框架”,所以我想发布它。如何配置Gradle Kotlin DSL以避免发布?

1 个答案:

答案 0 :(得分:0)

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

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