一尘不染

Jenkins Groovy生成后脚本用于评估具有功能的文件

jenkins

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

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

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

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

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

然后我得到以下错误:

严重:类文件Set-BuildBadge $ addSummaryWithText java.lang.ClassFormatError中的非法类名称“
Set-BuildBadge $ addSummaryWithText”:java.lang.ClassLoader中类文件Set-BuildBadge
$ addSummaryWithText中的非法类名“ Set-BuildBadge $ addSummaryWithText”
.defineClass1(本机方法)…

不了解GroovyShell.evaluate的 工作方式。谁能帮我?


阅读 244

收藏
2020-07-25

共1个答案

一尘不染

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

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

更改脚本名称以SetBuildBadge.groovy将其修复:-)

2020-07-25