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

Iva*_*van 4 groovy function jenkins

我在Jenkins作业的后期构建步骤中使用以下代码:

evaluate(new File("Set-BuildBadge.groovy"));
Run Code Online (Sandbox Code Playgroud)

所以它成功运行一个脚本,如果它包含的功能.

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

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

然后我收到以下错误:

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

我没有得到GroovyShell.evaluate如何工作.谁能帮我?

tim*_*tes 11

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

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

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