Как я могу вызвать функцию из отдельного файла .gradle из сценария gradle, используя Gradle Kotlin DSL? - PullRequest
1 голос
/ 29 января 2020

В основном я хочу сделать именно это:

Использовать функцию Gradle из другого файла gradle

, то есть вызывать одну функцию в одном скрипте gradle из другой , Проблема заключается в том, что мой build.gradle находится в Kotlin (build.gradle.kts), а скрипт, в котором находится моя функция, все еще находится в groovy.

Я перешел по указанной выше ссылке для groovy - на groovy, но я не могу заставить это работать, используя Kotlin DSL.

В моем groovy файле functions.gradle у меня есть:

def buildVersionName() {
        //Do some stuff
}

И

ext {
    buildVersionName = this.&buildVersionName
}

Затем в моем скрипте build.gradle.kts, У меня есть:

apply(from = "functions.gradle")
project.ext.buildVersionName()

Когда я синхронизирую c, я получаю ошибку:

Unresolved reference: buildVersionName

1 Ответ

0 голосов
/ 30 января 2020

В build.gradle.kts выполните следующие действия:

import groovy.lang.Closure
apply(from="functions.gradle")
val buildVersionName: Closure<Any> by ext
buildVersionName()
...