【发布时间】:2014-04-03 13:32:12
【问题描述】:
我在 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” 文件 Set-BuildBadge$addSummaryWithText java.lang.ClassFormatError: 类文件中的非法类名“Set-BuildBadge$addSummaryWithText” Set-BuildBadge$addSummaryWithText 在 java.lang.ClassLoader.defineClass1(Native Method) ...
我不明白 GroovyShell.evaluate 的工作原理。 谁能帮帮我?
【问题讨论】:
-
您可以尝试在脚本名称中不使用连字符吗?
-
天才!我已经失去了 3 个小时来挖掘 groovy(对我来说是新的),解决方案只是删除 hypen )))
-
添加为答案! :-) 很高兴它解决了!玩得开心!
-
非常感谢,伙计!顺便说一句,名声不错……
-
哈哈,不用担心!而且ta...不确定这是一件好事,还是某种轻度潜在成瘾的迹象;-)