Jenkins Groovy构建后脚本以评估带有函数的文件

时间:2014-04-03 13:32:13

标签: function groovy jenkins

我在Jenkins工作的 post-build 步骤中使用以下代码:

evaluate(new File("Set-BuildBadge.groovy"));

如果包含函数,它会成功运行脚本。

如果在脚本中我定义了函数,例如:

def addSummaryWithText(Icon, Text) {
    manager.createSummary(Icon).appendText(Text, false)
}
...
addSummaryWithText("installer.gif", "Project: " + ProjectName)

然后我收到以下错误:

  

致命:非法的类名" Set-BuildBadge $ addSummaryWithText"在班上   file Set-BuildBadge $ addSummaryWithText java.lang.ClassFormatError:   非法类名" Set-BuildBadge $ addSummaryWithText"在类文件中   Set-BuildBadge $ addSummaryWithText at   java.lang.ClassLoader.defineClass1(原生方法)......

我没有得到 GroovyShell.evaluate 的工作方式。 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:11)

看起来JVM不喜欢带有连字符的类名。

通过在内部调用脚本Set-BuildBadge.groovy,它会被编译成一个在向脚本添加函数时不允许的类。

将脚本名称更改为SetBuildBadge.groovy将修复它: - )