我在settings.gradle.kts
中有以下代码,在gradle 5
中可以正常使用
rootProject.name = "server"
val pluginsRepoUrl: String by settings
val repoUsername: String by settings
val repoPassword: String by settings
pluginManagement {
repositories {
maven {
url = uri(pluginsRepoUrl)
credentials {
username = repoUsername
password = repoPassword
}
}
}
}
我想升级到gradle 6
,但是此代码不起作用,并给我以下错误:
e: .../settings.gradle.kts:10:23: Unresolved reference: pluginsRepoUrl
这些值来自gradle.properties
文件。
答案 0 :(得分:4)
在Gradle 6中,the behavior of the pluginManagement {}
block was changed:
以前,设置脚本中的所有
pluginManagement {}
块都是在脚本正常执行期间执行的。现在,它们以与
buildscript {}
或plugins {}
类似的方式更早地执行。 这意味着该代码块中的代码无法引用脚本中其他地方声明的任何内容。
(重点是我的)
这意味着您不能引用在该块外部声明的变量。要解决此问题,请将这些声明移至pluginManagement {}
块内:
pluginManagement {
val pluginsRepoUrl: String by settings
val repoUsername: String by settings
val repoPassword: String by settings
repositories {
...