使用 Groovy 2.0.7,当我有一个 config.groovy 时,例如:-
def configText = """
switch(environment) {
case 'localhost':
PROXY {
HOST = "localproxy"
}
break
}
PROXY {
HOST = "defaultproxy"
}"""
def config = new ConfigSlurper("localhost").parse(configText)
,当我这样做时,我得到一个断言失败: -
assert "localproxy" == config.PROXY.HOST
如果我删除“defaultproxy”行,则正确返回环境值。
难道我做错了什么?这对我来说是一个标准要求,为 config.PROXY.HOST 指定一个默认值,但能够在环境切换块中覆盖它。
我知道我可以使用环境构造函数来覆盖值,但这对我没有用,因为它不允许我评估值,例如,如果我有:-
PROXY {
HOST = "defaultproxy"
URL = "http://" + HOST
}
那么http://defaultproxy
即使我指定了“localhost”环境,URL 也将始终存在。
我真的需要两者的功能!有谁知道我怎么能做到这一点?