【发布时间】:2018-09-27 19:43:38
【问题描述】:
我正在尝试使用 Jenkins 管道 emailext 附加模板文件。 变量 (PROJNAME) 无法在模板文件中访问,我收到异常电子邮件:
在模板呈现期间引发异常:没有这样的属性:类的环境:SimpleTemplateScript21 groovy.lang.MissingPropertyException:没有这样的属性:类的环境:org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:SimpleTemplateScript21: 53)在 org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:52) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307) 在 SimpleTemplateScript21.run(SimpleTemplateScript21 .groovy:1) 在 groovy.text.SimpleTemplateEngine$SimpleTemplate$1.writeTo(SimpleTemplateEngine.java:168) 在 groovy.text.SimpleTemplateEngine$SimpleTemplate$1.toString(SimpleTemplateEngine.java:180) 在 hudson.plugins.emailext.plugins。 content.ScriptContent.renderTemplate(ScriptContent.java:151) at hudson.plugins.emailext.plugins.content.ScriptContent.evaluate(ScriptContent.java:82) at org.jenkinsci.plugins.tokenmacro.DataBoundTokenMacro.evaluate(D ataBoundTokenMacro.java:208) 在 org.jenkinsci.plugins.tokenmacro.Parser.processToken(Parser.java:308) 在 org.jenkinsci.plugins.tokenmacro.Action$KiHW1UeqOdqAwZul.run(Unknown Source) 在 org.parboiled.matchers。 ActionMatcher.match(ActionMatcher.java:96) at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)
管道脚本:
stage('Email') {
def mailRecipients = "myemail@abc.com"
def jobStatus = currentBuild.currentResult
env.PROJNAME = 'project_name'
echo "projname is ${PROJNAME}"
emailext body: '''${SCRIPT, template="test.template"}''',
mimeType: 'text/html',
subject: "[Jenkins] ${jobStatus}",
to: "${mailRecipients}"
}
模板(文件名 - test.template):
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>Job is '${env.PROJNAME}'</p>
</body>
</html>
还尝试将模板文件中的变量语法替换为“${PROJNAME}”和“${ENV, var="PROJNAME"}”,但没有成功。有什么建议吗?
当我在模板文件中替换为 ENV(var="PROJNAME") 时没有帮助。我收到的电子邮件是:
这是一个标题
工作是 ENV(var="PROJNAME")
【问题讨论】:
-
您是否简单地尝试使用:
Job is ${env.PROJNAME}
?没有单引号? -
是的,我收到了与电子邮件相同的异常。
-
我也有同样的问题。你找到解决办法了吗?
-
Pakeer 提供的解决方案对我有用
标签: jenkins jenkins-plugins jenkins-pipeline email-ext jenkins-email-ext