Как использовать переменную kotlin в скрипте build.gradle.kts? - PullRequest
2 голосов
/ 11 февраля 2020

В приведенном ниже скрипте:

val kotlinVersion by extra ("1.3.61")

println("Version "+kotlinVersion)

plugins {
    kotlin("jvm") version kotlinVersion
}

переменная kotlinVersion правильно напечатана. Тем не менее, он не распознается в блоке плагинов и возникает следующая ошибка:

e: /home/achadde/sources/kotlin/minichain/build.gradle.kts:6:27: Unresolved reference: kotlinVersion

Как это исправить?

1 Ответ

1 голос
/ 11 февраля 2020

Если вы используете IntelliJ, он покажет вам немного больше информации:

'val kotlinVersion: String' не может быть вызван в этом контексте неявным получателем. При необходимости используйте явное значение.

Внешняя область (this@Build_gradle), в которой вы определяете kotlinVersion, недоступна в области this@plugins, поэтому вы должны определить kotlinVersion внутри плагинов лямбда.

Поскольку делегат extra там недоступен, его также нельзя использовать:

plugins {
    val kotlinVersion = "1.3.61"
    // ...
}

К сожалению, использование метки не работает:

val kotlinVersion by extra ("1.3.61")

plugins {
    // ... Unresolved reference: kotlinVersion 
    kotlin("jvm") version this@Build_gradle.kotlinVersion
}
...