我正在使用Groovy脚本从Jenkins自由式工作中获取有关脱机奴隶列表的电子邮件。我在 Jenkins自由式作业>构建环境>评估的Groovy脚本下有以下代码:
import hudson.model.Node
import hudson.model.Slave
import jenkins.model.Jenkins
String[] slaves = []
Jenkins jenkins = Jenkins.instance
for (Node node in jenkins.nodes) {
if (!node.toComputer().online) {
slaves += node.name
}
}
println "[OFFLINE SLAVES]: "+slaves
try{
emailext body: "${slaves}",
subject: "test subject",
to: "abc@xyz.com"
}
catch (Throwable t) {
println(t)
throw t;
}
从列表可以正常打印,但是在调用emailext时,返回以下 ERROR :
groovy.lang.MissingMethodException:方法的无签名:Script1.emailext()适用于参数类型:(java.util.LinkedHashMap)值:[[body:$ {slaves},至:abc@xyz.com ,主题:测试主题]] 08:17:48 [EnvInject]-[错误]-注入在构建包装器中定义的env var时出现问题:org.jenkinsci.lib.envinject.EnvInjectException:无法评估脚本。
我对此并不陌生,不胜感激一些有关这项工作的指导。 预先感谢。
答案 0 :(得分:0)
尝试这样:
try {
emailext (
subject: "test subject",
to: "abc@xyz.com",
body: "Offline Slaves : '${slaves}'"
)
}