не удается получить Groovy ConfigSlurper для анализа строки и поиска результата как свойства - PullRequest
1 голос
/ 10 марта 2019

У меня действительно простая проблема с получением 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.

1 Ответ

1 голос
/ 10 марта 2019

В вашем примере кода есть одно недоразумение.Разбор скрипта конфигурации не изменяет объект ConfigSlurper, но вместо этого возвращает ConfigObject.Все, что вам нужно сделать, это получить результат метода slurper.parse(script) и получить доступ к ключу host из возвращенного экземпляра ConfigObject.

ConfigSlurper slurper = new ConfigSlurper()

def config = slurper.parse(""" host = 'localhost' """)

println config.getProperty("host")

Вывод:

localhost
...