You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Android库的maven-publish与signing插件从Groovy DSL迁移至Kotlin DSL?

将Android库的Groovy DSL发布配置转换为Kotlin DSL

以下是你提供的Groovy DSL代码对应的Kotlin DSL版本,适配maven-publish和signing插件:

plugins {
    `maven-publish`
    signing
}

android {
    publishing {
        singleVariant("release") {
            withJavadocJar()
            withSourcesJar()
        }
    }
}

publishing {
    publications {
        create<MavenPublication>("release") {
            afterEvaluate {
                from(components["release"])
            }

            groupId = project.property("groupId") as String
            artifactId = project.property("artifactId") as String
            version = project.property("version") as String
        }
    }

    repositories {
        maven {
            url = uri("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/")
            credentials {
                username = project.property("sonatypeUsername") as String
                password = project.property("sonatypePassword") as String
            }
        }
    }
}

signing {
    sign(publishing.publications["release"])
}

关键转换点说明:

  • 插件声明:Kotlin DSL中,带连字符的maven-publish需要用反引号包裹,signing可直接使用
  • 组件引用:Kotlin里访问组件需通过索引方式components["release"],替代Groovy的直接属性调用
  • 属性获取:必须明确调用project.property(),并将返回的Any类型强转为String,符合Kotlin类型安全要求
  • 仓库URL配置:Kotlin DSL需用uri()包裹URL字符串,替代Groovy的直接赋值
  • 签名配置:通过索引publishing.publications["release"]获取发布配置,传递给sign()方法

内容的提问来源于stack exchange,提问作者Adil Hussain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 12:24:56