GroovyのConfigSlurperでクロージャのデータ構造(この場合は設定ファイル)を解析したいと思います。解析結果は、データ構造に類似したオブジェクト階層に格納されます。このデータ構造に関して特別なことは、いくつかのクロージャー名が1つのクロージャー内で繰り返されるという事実だけである。 apple
および。私はConfigSlurper
が既に既存の値を置き換えるMap
を内部的に使っているようです。実際にConfigSlurper
がこれらの種類のデータ構造を扱うことができるかどうか疑問に思っていました。私が使用するGroovyのバージョンは1.7.10です。代わりに、GroovyShell
を使用してクロージャを実行しようとしましたが、実行順序に問題がありました。GroovyのConfigSlurperでネストされたクロージャで設定ファイルを読み込む
String rules = """
fruits {
apples {
apple {
id = 11
colors {
green {
name = 'test1'
}
green {
name = 'test2'
}
}
}
apple {
id = 12
colors {
green {
name = 'test3'
}
green {
name = 'test4'
}
}
}
}
}
"""
ConfigSlurper configSlurper = new ConfigSlurper()
def config = configSlurper.parse(rules)
println config
私はおそらくConfigSlurperで始まり、[parse(Script、URL)メソッド](https://github.com/groovy/groovy-core/blob/master/src/main/groovy/util/)を上書きします。 ConfigSlurper.groovy#L157)、しかし簡単にコードを見た後、2分の仕事にはならないでしょう...私はそれがあなたが必要とするものではないものを使用して、スコープ変数の古いノードを見つけると思っています... –