具有多个单词的Groovy属性/配置

时间:2012-01-11 01:21:33

标签: groovy

我希望我的groovy配置看起来像:

plans {
    'Plan 1'='123'
    'Plan 2'='456'
}

我如何用groovy解析它,以便我可以访问它类似于:

def config = new ConfigSlurper().parse(data)
assert config.plans.'Plan 1' == '123'
assert config.plans.'Plan 2' == '456'

不幸的是我收到错误:

[Plan 1] is a constant expression, but it should be a variable expression at line...

我没有修复ConfigSlurper或数据的格式,但我想将每个作为字符串引用多个单词和可能的特殊字符,如*,^等(因此如果regexp导致潜在的正则表达式问题)用过)。

1 个答案:

答案 0 :(得分:3)

如果使用“完整”表达式而不是嵌套计划定义,则可以在配置文件中分配这些内容:

plans.'Plan 1' = '123'
plans.'Plan 2' = '456'
plans.'Plan *' = '789'

不是很漂亮,但是你可以参考它们:

def config = new ConfigSlurper().parse(data)
assert config.plans.'Plan 1' == '123'
assert config.plans.'Plan 2' == '456'
assert config.plans.'Plan *' == '789'