Jenkins中默认email-ext Groovy模板位置及自定义模板不生效求助
解决Jenkins email-ext默认模板位置与自定义模板加载问题
一、默认Groovy模板的实际位置
你之前查到的Jenkins\plugins\email-ext\WEB-INF\lib路径没错,但默认模板并不是以单独文件形式存在的——它们打包在email-ext的jar包内部了。你可以用解压工具(比如7-Zip、WinRAR)打开该目录下的email-ext-xxx.jar文件(xxx是版本号),在jar包内部的/hudson/plugins/emailext/templates(部分版本是/jenkins/plugins/emailext/templates)路径下,就能找到默认的Groovy模板文件,比如html.groovy、text.groovy这些。
如果需要修改默认模板,你可以把这些文件提取出来修改后替换回jar包,不过更推荐直接用自定义模板替代默认模板。
二、自定义模板未加载的排查与解决
你遇到的自定义模板不生效问题,大概率是路径或配置环节出错了,按下面的步骤逐一排查:
- 修正文件夹命名:正确的自定义模板存放路径是
$JENKINS_HOME/email-templates(注意是复数templates,不是你之前建的单数template),这个命名错误会直接导致Jenkins找不到模板文件。 - 规范模板文件格式:确保你的自定义模板文件后缀是
.groovy,文件名尽量避免特殊字符,比如命名为my-build-notify.groovy就很合适。 - 在配置中指定自定义模板:
- 全局配置:进入Jenkins「系统管理」→「系统配置」,找到「Extended E-mail Notification」配置项;在「Default Content Type」选择对应格式(比如HTML)后,在「Default Content」区域勾选「Use Groovy Script」,然后在下拉框中就能找到你放在
email-templates里的自定义模板(如果没显示,重启Jenkins再试)。 - 项目单独配置:进入目标项目的「配置」→「Post-build Actions」,添加「Editable Email Notification」,同样在内容设置里选择你的自定义模板即可。
- 全局配置:进入Jenkins「系统管理」→「系统配置」,找到「Extended E-mail Notification」配置项;在「Default Content Type」选择对应格式(比如HTML)后,在「Default Content」区域勾选「Use Groovy Script」,然后在下拉框中就能找到你放在
- 检查文件权限:确保Jenkins的运行用户(比如Linux下的
jenkins用户、Windows下的服务账户)对$JENKINS_HOME/email-templates文件夹及内部模板文件有读取权限,权限不足也会导致模板无法加载。
按上面的步骤调整后,应该就能正常加载自定义模板了。
内容的提问来源于stack exchange,提问作者user11881
相关产品推荐
相关产品推荐

