kotlin gradle dsl问题:类型不匹配:推断类型是字符串但URI!预计

Posted

技术标签:

【中文标题】kotlin gradle dsl问题:类型不匹配:推断类型是字符串但URI!预计【英文标题】:kotlin gradle dsl problem : Type mismatch: inferred type is String but URI! was expected 【发布时间】:2021-11-04 08:15:18 【问题描述】:

我正在尝试将 Gradle's Groovy DSL 转换为 Kotlin DSL

Gradle Groovy 代码是:

 repositories 
        maven 
            url "https://repo.tools.telstra.com/repository/maven-public"
        
        mavenCentral()
        maven 
            url 'https://plugins.gradle.org/m2/'
        
    

我正在尝试将其转换为Kotlin DSL,如下所示:

 repositories 
        maven  url  = ("https://repo.tools.telstra.com/repository/maven-public") 
        mavenCentral()
        maven  url =  ('https://plugins.gradle.org/m2/') 
    

因此我收到以下错误:

类型不匹配:推断的类型是 String 但 URI!预料之中

如何在此处设置 URI?

【问题讨论】:

【参考方案1】:

相当于 Groovy DSL 的

maven 
    url "https://repo.tools.telstra.com/repository/maven-public"

在 Kotlin DSL 中是:

maven("https://plugins.gradle.org/m2/")

【讨论】:

请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。 感谢@ksviety - 我添加了更多解释以满足社区管理员的需求,请查看未来的指导。【参考方案2】:

这里已经解决了How to add a maven repository by url using kotlinscript DSL (build.gradle.kts)。

repositories 
        maven  url  = ("https://repo.tools.telstra.com/repository/maven-public") 
        mavenCentral()
        maven  url =  ('https://plugins.gradle.org/m2/') 
    

Kotlin DSL 将是

repositories 
    mavenCentral()
    maven ( url = "https://repo.tools.telstra.com/repository/maven-public" )
    maven ( url = "https://plugins.gradle.org/m2/" )


【讨论】:

【参考方案3】:

目前我使用的是 Gradle 6.9,我们必须像下面这样写:

repositories 
    maven(url = uri("https://repo.tools.telstra.com/repository/maven-public"))
    mavenCentral()
    maven( url = uri("https://plugins.gradle.org/m2/"))
 

【讨论】:

以上是关于kotlin gradle dsl问题:类型不匹配:推断类型是字符串但URI!预计的主要内容,如果未能解决你的问题,请参考以下文章

如何在 gradle 5.0.0 中将 bootRepackage 任务转换为 kotlin DSL?

Gradle Kotlin DSL , 你知道它吗?

Gradle Kotlin DSL , 你知道它吗?

Gradle Kotlin DSL , 你知道它吗?

如何从非 build-gradle 文件访问 Kotlin DSL 扩展?

使用 Gradle Kotlin DSL 发布 Kotlin MPP 元数据