Gradle Groovy DSL转Kotlin DSL配置Maven仓库URL出现类型不匹配如何解决
Gradle Kotlin DSL Maven仓库地址正确配置方案
报错的核心原因是 Kotlin 是强类型语言,Gradle Kotlin DSL 中maven代码块的url属性接收的是URI类型,不能直接赋值字符串,需要用 Gradle 提供的uri()工具方法把字符串转为URI类型。Groovy是弱类型语言会自动做隐式转换,所以原来的Groovy代码可以直接运行。
标准写法(显式声明代码块)
如果需要在maven代码块中配置更多属性(如credentials、allowInsecureProtocol等),可以用以下写法:
repositories { maven { url = uri("https://repo.tools.telstra.com/repository/maven-public") } mavenCentral() maven { url = uri("https://plugins.gradle.org/m2/") } }
简化写法
如果只需要配置仓库地址,Kotlin DSL 支持更简洁的写法,无需手动处理URI转换:
repositories { maven("https://repo.tools.telstra.com/repository/maven-public") mavenCentral() maven("https://plugins.gradle.org/m2/") }
内容的提问来源于stack exchange,提问作者Pramod S. Nikam
相关产品推荐
相关产品推荐

