我试图找到一种方法来使用groovy变量而不是使用硬编码模板名称
当前代码如下所示:'${SCRIPT, template="groovy-html.template"}'
我试图使用嵌套变量扩展,但我仍然遇到错误。
示例:
def body = '''${SCRIPT, template="${template}"}'''
未找到Groovy模板文件[$ {template}] $ JENKINS_HOME /电子邮件模板。使用text.jelly模板生成。
我的电话可以在https://github.com/pycontribs/powertape/blob/master/vars/notifyBuild.groovy#L47
看到答案 0 :(得分:1)
def sendEmail(String subject, String template)
{
def bodyContent = "\${SCRIPT, template=\"${template}\"}"
emailext subject: "${subject}",
body: bodyContent,
recipientProviders: [[$class: 'RequesterRecipientProvider']]
}
以上对我有用。
答案 1 :(得分:0)
您可以尝试更改
自:
def body = '''${SCRIPT, template="${template}"}'''
要:
def body = """${SCRIPT, template="$template"}"""
答案 2 :(得分:0)
我花了一些时间才意识到SCRIPT扩展不是由Groovy本身进行的,而是由emailex函数进行的。
因此,解决方法是阻止Groovy扩展外层:
def body = "\${SCRIPT, template='${template}'}"
在此之后,当我将body参数传递给emailext时,它将被正确扩展。