如何使用Gradle Kotlin DSL(KTS)实现Maven发布?Groovy代码转KTS
转换后的build.gradle.kts代码
plugins { ... id("maven-publish") } android { .... publishing { singleVariant("release") } } dependencies { ... } afterEvaluate { publishing { publications { create<MavenPublication>("release") { groupId = "com.arnab.storage" artifactId = "Storage" version = "${(project.extra["version"] as Map<String, *>)["major"]}.${(project.extra["version"] as Map<String, *>)["minor"]}.${(project.extra["version"] as Map<String, *>)["build"]}" pom { name.set("Android library for Storage system") description.set("Useful library to help Android developers to work with Files in Android 10 and higher version") } afterEvaluate { from(components.release) } } } } }
转换说明
- 插件声明:将Groovy风格的单引号插件ID改为Kotlin DSL的括号+双引号格式
- 字符串处理:移除原代码中的转义双引号,直接使用标准双引号字符串
- 扩展属性访问:原
project.ext.version在Kotlin DSL中通过project.extra获取,需强转为Map后读取major/minor/build字段 - Publication定义:用
create<MavenPublication>("release")替代Groovy中的类型声明方式 - POM配置:原直接赋值改为调用
set()方法,适配Kotlin的属性API - 组件引用:保持
components.release的引用方式,通过from()方法关联组件
内容的提问来源于stack exchange,提问作者Arnab Kundu
相关产品推荐
相关产品推荐

