混合 Groovy 和 Kotlin DSL - 如何访问额外功能

Mixing Groovy and Kotlin DSL - how to access extra function

提问人:kristyna 提问时间:11/17/2023 更新时间:11/17/2023 访问量:8

问:

我有一个较旧的脚本,它定义了一个函数:

ext.someFunction = {
   return true
}

我有一个使用 Kotlin DSL 的新项目。现在,我想使用上一个脚本中定义的函数。如何使用 Kotlin DSL?

apply("./old_script.gradle")
val someFunction: () -> Boolean by extra
someFunction()

结果如下:Cannot get non-null extra property 'someFunction' as it does not exist

gradle gradle-kotlin-dsl

评论


答:

0赞 kristyna 11/17/2023 #1

事实证明,这不是语法问题,而是我访问该函数的位置。

这将失败

buildscript {
    apply("./old_script.gradle")

    dependencies {
        val someFunction: () -> Boolean by extra
        someFunction()
    }
}

但这会起作用

buildscript {
    apply("./old_script.gradle")

    val someFunction: () -> Boolean by extra
    dependencies {
        someFunction()
    }
}