我正在尝试使用我的 settings.kts
(如下)中一个全局位置的名为 myList
的字符串(选项)列表,因为我正在尝试使其更易于维护,但我不断收到此错误表达式无法从嵌套类“MySubProject”访问
。我一直在阅读有关 Kotlin 以及如何使用它的内容,但我一直无法弄清楚这一点。也许具有 Kotlin 或 TeamCity DSL 经验的人可以帮助我?
import jetbrains.buildServer.configs.kotlin.v2019_2.project
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
var myList = listOf("Option 1", "Option 2")
project {
params {
select("system.MyOption",
myList[0],
label = "My Option",
description = "It's an option.",
options = myList)
}
subProject(MySubProject)
}
object MySubProject : Project ({
params {
select("system.MySubOption",
myList[0],
label = "My Sub Option",
description = "It's another option.",
options = myList)
}
})
最佳答案
所以我最终做的是像这样进行对象声明:
object MyGlobalConfig {
var myList = listOf("Option 1", "Option 2")
}
然后像这样引用脚本其他部分的值:
project {
params {
select("system.MyOption",
MyGlobalConfig.myList[0],
label = "My Option",
description = "It's an option.",
options = MyGlobalConfig.myList)
}
subProject(MySubProject)
}
object MySubProject : Project ({
params {
select("system.MySubOption",
MyGlobalConfig.myList[0],
label = "My Sub Option",
description = "It's another option.",
options = MyGlobalConfig.myList)
}
})
它有效,这是我能想到的最好的。
关于kotlin - 如何在 TeamCity 的 Kotlin DSL 中引用全局表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59314627/