如何使用gradle Kotlin DSL从gradle脚本调用单独的.gradle文件中的函数?
基本上我想做的就是: 也就是说,从一个gradle脚本调用另一个gradle脚本中的一个函数。问题是我的build.gradle在Kotlin(build.gradle.kts)中,而我的函数所在的脚本仍然在groovy中 我遵循了groovy到groovy的上述链接,但我无法使用Kotlin DSL实现这一点 在我的groovy文件functions.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 } 及 然后,在我
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()