让ConfigSlurper
处理我的配置时我遇到了一个非常简单的问题
Groovy版本2.5.6
回到基础知识并尝试这个简单的Groovy脚本:
ConfigSlurper slurper = new ConfigSlurper ()
slurper.parse ("""host='localhost' """)
println slurper.getProperty('host')
/* gives exception :
Caught: groovy.lang.MissingPropertyException: No such property: host for class: groovy.util.ConfigSlurper
groovy.lang.MissingPropertyException: No such property: host for class: groovy.util.ConfigSlurper
at scripts.testSSlurper.run(testSSlurper.groovy:7)
*/
为什么这个简单的解析不会失败?
我在这里做错了什么?这是我编写的解析文件实际代码的阻止程序-似乎也没有将任何内容绑定到Slurper中。
答案 0 :(得分:1)
您的代码示例中有一个误解。解析配置脚本不会使ConfigSlurper
对象发生变异,而是返回一个ConfigObject
。您要做的就是捕获slurper.parse(script)
方法的结果并从返回的host
实例中访问ConfigObject
键。
ConfigSlurper slurper = new ConfigSlurper()
def config = slurper.parse(""" host = 'localhost' """)
println config.getProperty("host")
输出:
localhost