当前位置: 首页 > 面试题库 >

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

后烨煜
2023-03-14
问题内容

我在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的 工作方式。谁能帮我?


问题答案:

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

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

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



 类似资料:
  • 简介 NSIS 是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System)的缩写,它是一个免费的 Win32 安装、卸载系统。 它的特点:脚本简洁高效;系统开销小;当然进行安装、卸载、设置系统设置、解压文件等等更不在话下,几乎可以做所有的事情。更多的功能请阅读《NSIS用户手册》。 工具 HM VNISEdit+NSIS,推荐使用NSIS

  • 使用方法 性能评估模块提供了一系列用于模型性能评估的函数,这些函数在模型编译时由metrics关键字设置 性能评估函数类似与目标函数, 只不过该性能的评估结果讲不会用于训练. 可以通过字符串来使用域定义的性能评估函数 model.compile(loss='mean_squared_error', optimizer='sgd', metri

  • 使用方法 性能评估模块提供了一系列用于模型性能评估的函数,这些函数在模型编译时由metrics关键字设置 性能评估函数类似与目标函数, 只不过该性能的评估结果讲不会用于训练. 可以通过字符串来使用域定义的性能评估函数,也可以自定义一个Theano/TensorFlow函数并使用之 参数 y_true:真实标签,theano/tensorflow张量 y_pred:预测值, 与y_true形式相同的

  • 我正在编写一段代码,对给定的后缀表达式求值。每个操作数和运算符之间用空格分隔,最后一个运算符后跟空格和“x”。 例子: 内插表达式:(2*3 4)*(4*3 2) 后缀表达式:23*443*2*x “x”暗示表达的结束。 输入(后缀表达式)作为字符串由另一个函数给出,该函数将内缀表达式转换为后缀表达式。 后缀评估的功能是: 我给出的例子的输出应该是“140”,但我得到的是“6”。请帮我找出错误。

  • 我有一个类似这样的问题:在返回函数的变量之前,我如何等待一个promise完成? 我有一个函数来执行一些表单验证。作为其中的一部分,它有时会打开一个模式,用户必须在返回值之前关闭该模式,如下所示: 注意,直到模式关闭,它才。 但是,我有一个基于函数计算的条件 这样做的问题是,如果将参数传递给,而不需要等待模式,那么我将得到一个未定义的promise。 TypeError:无法读取未定义的属性“th

  • 问题内容: 来自我的Web应用程序的XML响应既有HTML添加到页面,又有一些要运行的脚本。 我正在尝试从Web应用发送回XML,例如: 我现在正在做的是抢购和CDATA,将html插入页面并评估。 我正在寻找对我的方法的批评。任何人有什么建议吗? 问题答案: 您宁愿发送JSON,它也更易于解释。例: