Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用gradle Kotlin DSL从gradle脚本调用单独的.gradle文件中的函数?_Gradle_Kotlin_Groovy_Gradle Kotlin Dsl - Fatal编程技术网

如何使用gradle Kotlin DSL从gradle脚本调用单独的.gradle文件中的函数?

如何使用gradle Kotlin DSL从gradle脚本调用单独的.gradle文件中的函数?,gradle,kotlin,groovy,gradle-kotlin-dsl,Gradle,Kotlin,Groovy,Gradle Kotlin Dsl,基本上我想做的就是: 也就是说,从一个gradle脚本调用另一个gradle脚本中的一个函数。问题是我的build.gradle在Kotlin(build.gradle.kts)中,而我的函数所在的脚本仍然在groovy中 我遵循了groovy到groovy的上述链接,但我无法使用Kotlin DSL实现这一点 在我的groovy文件functions.gradle中,我有: def buildVersionName() { //Do some stuff } 及 然后,在我

基本上我想做的就是:

也就是说,从一个gradle脚本调用另一个gradle脚本中的一个函数。问题是我的build.gradle在Kotlin(build.gradle.kts)中,而我的函数所在的脚本仍然在groovy中

我遵循了groovy到groovy的上述链接,但我无法使用Kotlin DSL实现这一点

在我的groovy文件functions.gradle中,我有:

def buildVersionName() {
        //Do some stuff
}

然后,在我的build.gradle.kts脚本中,我有:

apply(from = "functions.gradle")
project.ext.buildVersionName()
当我同步时,我得到错误信息:

Unresolved reference: buildVersionName

build.gradle.kts
中,执行以下操作:

import groovy.lang.Closure
apply(from="functions.gradle")
val buildVersionName: Closure<Any> by ext
buildVersionName()
import groovy.lang.Closure
应用(from=“functions.gradle”)
val buildVersionName:外部关闭
buildVersionName()

请添加您尝试过的内容以及失败的原因。我想知道如何仅使用Kotlin脚本就可以做到这一点,并最终使用
buildSrc
()。也许下面的内容会对您有所帮助:(底部有一章是关于与Groovy的互操作性(使用a))。@elect,
buildscript{repositories{maven{url=uri(“https://plugins.gradle.org/m2/“”}}应用(从=“”https://raw.githubusercontent.com/i-net-software/SetupBuilder/master/scripts/SetupBuilderVersion.gradle)val setupBuilderVersion=project.extensions.extraProperties[“setupBuilderVersion”]作为groovy.lang.Closure println(setupBuilderVersion())}
import groovy.lang.Closure
apply(from="functions.gradle")
val buildVersionName: Closure<Any> by ext
buildVersionName()