【发布时间】:2018-03-27 13:52:11
【问题描述】:
这个问题是我之前发过的earlier question的延续。
为了进一步增强我的模板我需要在模板引擎中有多个循环,并且需要从从配置文件派生的 HashMap 变量替换值。
我的 HashMap 看起来像这样,比如说envVar:
envVar = [
PROJECT:name,
env:[
[name:param1, value:value1],
[name:param2, value:value2],
[name:param3, value:value3]],
ports:[
[protocol:port1, port:1000],
[protocol:port2, port:2000]]
]
我的模板引擎如下所示:
- env:
<< NEED TO LOOP HERE WITH env variables
- name : param1
value : value1
....
>>
project: "${PROJECT}"
......
......
......
ports:
<< NEED TO LOOP HERE WITH ports variables
- port: 1000
protocol : port1
....
>>
代码 sn-p 如下所述。
def f = new File('output.template')
def engine = new groovy.text.GStringTemplateEngine()
//....
//envVar are derived from another file
//....
def Template = engine.createTemplate(f).make(envVar)
println "${Template}"
谁能解释我如何修改上面的代码 sn-p 和模板以确保 envVar 将在模板引擎中正确替换。
【问题讨论】: