有没有一种简单安全的方法可以从外部文件读取Groovy映射?
我想将配置作为映射存储在单独的文件中 Groovy是否有一种内置的方法来实现这一点?我不想将配置存储为json文件,而必须读取和转换它——我想将其作为常规Groovy代码存储在单独的文件中 例如,我将在同一目录中创建一个文件,如下所示:有没有一种简单安全的方法可以从外部文件读取Groovy映射?,groovy,Groovy,我想将配置作为映射存储在单独的文件中 Groovy是否有一种内置的方法来实现这一点?我不想将配置存储为json文件,而必须读取和转换它——我想将其作为常规Groovy代码存储在单独的文件中 例如,我将在同一目录中创建一个文件,如下所示: // in file myconfig.groovy def myconfig = [ [ "confignode1" : "lsdkfjlskdfjlsdk
// in file myconfig.groovy
def myconfig = [
[
"confignode1" : "lsdkfjlskdfjlsdkjf",
"param1" : "lsdkfjlskdfjlsdkj",
"param2" : "sdkjlskjdflskf"
],
[
"confignode2" : "lsdkfjlskdfjlsdkjf",
"param1" : "lsdkfjlskdfjlsdkj",
"param2" : "sdkjlskjdflskf"
]
]
// in file myconfig.groovy
[
[
"confignode1": "lsdkfjlskdfjlsdkjf",
"param1" : "lsdkfjlskdfjlsdkj",
"param2" : "sdkjlskjdflskf"
],
[
"confignode2": "lsdkfjlskdfjlsdkjf",
"param1" : "lsdkfjlskdfjlsdkj",
"param2" : "sdkjlskjdflskf"
]
]
Groovy有没有一种方法可以导入该文件,而我可以像访问常规映射一样访问myconfig?如果您将myconfig.Groovy更改为返回如下映射,您可以尝试使用
evaluate
:
// in file myconfig.groovy
def myconfig = [
[
"confignode1" : "lsdkfjlskdfjlsdkjf",
"param1" : "lsdkfjlskdfjlsdkj",
"param2" : "sdkjlskjdflskf"
],
[
"confignode2" : "lsdkfjlskdfjlsdkjf",
"param1" : "lsdkfjlskdfjlsdkj",
"param2" : "sdkjlskjdflskf"
]
]
// in file myconfig.groovy
[
[
"confignode1": "lsdkfjlskdfjlsdkjf",
"param1" : "lsdkfjlskdfjlsdkj",
"param2" : "sdkjlskjdflskf"
],
[
"confignode2": "lsdkfjlskdfjlsdkjf",
"param1" : "lsdkfjlskdfjlsdkj",
"param2" : "sdkjlskjdflskf"
]
]
它可以这样使用:
// in file main.groovy
def myconfig = evaluate(new File("myconfig.groovy"))
println myconfig
结果:
> groovy main.groovy
[[confignode1:lsdkfjlskdfjlsdkjf, param1:lsdkfjlskdfjlsdkj, param2:sdkjlskjdflskf], [confignode2:lsdkfjlskdfjlsdkjf, param1:lsdkfjlskdfjlsdkj, param2:sdkjlskjdflskf]]
选中ConfigSlurper或GroovyShell类可能更好地使用JSON:List->JSON->File并以相同的方式加载,反之亦然