Templates Groovy TemplateEngines给予“;脚本不允许使用新groovy.text.SimpleTemplateEngine错误";

Templates Groovy TemplateEngines给予“;脚本不允许使用新groovy.text.SimpleTemplateEngine错误";,templates,groovy,jenkins-pipeline,Templates,Groovy,Jenkins Pipeline,我必须更新模板文件中的一个变量,因此使用groovy模板引擎进行更新,如下所示: > def installerTemplate=readFile "${template}" > def binding=[ > 'exeName': exeName > ] > def engine=new groovy.text.SimpleTemplateEngine() > def tpl=

我必须更新模板文件中的一个变量,因此使用groovy模板引擎进行更新,如下所示:

> def installerTemplate=readFile "${template}" 
>     def binding=[
>             'exeName': exeName
>             ]  
>     def engine=new groovy.text.SimpleTemplateEngine()  
>     def tpl=engine.createTemplate(installerTemplate).make(binding) 
>     writeFile file: "${target}", text: "${tpl}".toString()
但在这里,我得到以下许可错误! 我在这里看到了类似的问题,但大多数地方的解决方案是更改Jenkins安全配置,但在我的情况下,这不是选项。 那么,有没有其他方法可以在不涉及Jenkins配置的情况下解决此问题呢

或者,如果您可以建议在groovy中使用模板以外的其他方法

任何建议都非常感谢

谢谢, 甘尼什


许多签名的使用需要确认并添加到白页,SimpleTemplateEngine也属于它们; 我有一个任务去做你需要的事
以下是我得到的:

private static Object binding1(Map map, String string) {
    Template template = new StreamingTemplateEngine().createTemplate(string)
    return template.make(map.withDefault { "<not found>" })
}
但是,由于您没有jenkins的管理员权限,因此可以实现如下内容:

private static Object binding2(Map map, String string) {
    for (def data : map) {
        string = string.replace("\${" + data.getKey() + "}", data.getValue().toString())
    }
    return string
}

希望能有所帮助。

谢谢simkin的回复。。。我现在使用的是简单的字符串替换方法,它工作起来很有魅力
private static Object binding2(Map map, String string) {
    for (def data : map) {
        string = string.replace("\${" + data.getKey() + "}", data.getValue().toString())
    }
    return string
}