可以使用map作为输入变量来配置slurper解析方法

时间:2017-09-06 20:35:12

标签: grails groovy

我正在尝试使用这样的配置slurper来解析一个groovy文件。

fileContents = '''deployment {
  deployTo('dev') {
test = me
  }
  }'''
def config = new ConfigSlurper().parse(fileContents)

上面的代码有效,因为deployto(' dev')只是接受一个字符串。但我添加了一个额外的参数,它失败了,但是这个例外:

fileContents = '''deployment {
  deployTo('dev','qa') {
test = me
  }
  }'''
def config = new ConfigSlurper().parse(fileContents)

失败,出现以下异常:

  

Caught:groovy.lang.MissingMethodException:没有方法签名:groovy.util.ConfigSlurper $ _parse_closure5.deployTo()适用于参数类型:(java.lang.String,java.lang.String,script15047332444361539770645 $ _run_closure3 $ _closure10)值:[dev,postRun,script15047332444361539770645 $ _run_closure3 $ _closure10 @ 6b8ca3c8]

是否有办法在模块中使用额外的args读取此配置文件?

1 个答案:

答案 0 :(得分:1)

你快到了。要使用值列表,请执行以下更改。

自:

deployTo('dev','qa')

要:

deployTo(['dev','qa'])

这将是:

def fileContents = '''deployment {   deployTo(['dev','qa']) { test = me   }   }''' 
def config = new ConfigSlurper().parse(fileContents)​