Jenkins Pipeline:如何转储错误?

2024-01-06

当尝试打印错误时(e.getMessage())或在管道脚本中转储堆栈跟踪,我收到一条错误消息,指出这是不允许的。在这种情况下如何将错误输出到日志中?

try {
    deleteJob( JOB_NAME )
} catch (e) {
    emailError(e.getMessage())
    echo e.getMessage()
}

没有得到这个:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method java.lang.Throwable getMessage
    at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectMethod(StaticWhitelist.java:158)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:80)
    at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
    at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:15)
    at WorkflowScript.runTests(WorkflowScript:325)
    at WorkflowScript.run(WorkflowScript:97)
    at ___cps.transform___(Native Method)
    at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixName(FunctionCallBlock.java:74)
    at sun.reflect.GeneratedMethodAccessor315.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
    at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
    at com.cloudbees.groovy.cps.Next.step(Next.java:58)
    at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:19)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:106)
    at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)
    at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:164)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:277)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$000(CpsThreadGroup.java:77)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:186)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:184)
    at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:47)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
    at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Finished: FAILURE

调用签名直接在 Jenkins GUI 中列入白名单。进入Jenkins中的脚本审批管理页面。通常是这样/scriptApproval/.

您应该看到,您尝试使用非白名单方法将创建一个“待签名批准”。点击旁边的批准按钮method java.lang.Throwable getMessage entry.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins Pipeline:如何转储错误? 的相关文章

随机推荐

  • 使用远程 Web 测试框架(BrowserStack 和 LambdaTest)时,chrome 上的表单输入条目失败 [重复]

    这个问题在这里已经有答案了 我的测试套件在本地以及使用 Chrome 的 gitlab 管道中运行良好 然而 当在远程测试框架上使用 Chrome 仅 运行它们时 它们会在登录页面上失败 我测试了 BrowserStack 和 LamdaT
  • 为什么声明浮点变量时需要在十进制数末尾添加“f”?

    我以前见过这个问题 然而 我对给出的答案并不满意 典型的响应是 Java 将数字视为双精度数 因为这是 JAVA 中的默认值 并在编译时给出不匹配错误 这种行为显然完全忽略了我对 float 声明的使用 我的问题是 如果我将变量类型声明为f
  • IIS 网络错误 (tcp_error)

    我在使用 IIS 时遇到问题 我在服务器上部署了一个Web项目 然后在该服务器上 本地 运行 就可以了 但是当我从另一台计算机连接时 我收到此消息 网络错误 tcp error 发生通信错误 操作超时 Web 服务器可能已关闭 太忙或遇到其
  • 以编程方式从布局中删除块

    我想根据通过前端路由器控制器登录的用户从产品视图页面中删除product options wrapper块 我知道我可以以编程方式附加一个新块 但我没有找到删除函数 尝试过某事 像那样 this gt getLayout gt unsetB
  • ES6 从 root 导入

    我目前正在玩 React Native 我正在尝试构建我的应用程序 但是它开始因导入而变得混乱 app components Loading js index ios js 现在 在我的index ios js我能够简单地做 import
  • Java:匹配字符串中的短语

    我在数据库和输入字符串中有一个短语列表 短语可能由一个或多个单词组成 我需要找出哪些短语出现在输入字符串中 在Java中是否有一种有效的方法来执行这种匹配 一个快速的破解方法是 基于组合短语构建正则表达式 构造一个集合 列出迄今为止尚未匹配
  • istream 运算符重载 C++

    我正在尝试执行一个简单的 istream 运算符重载 但由于某种原因 一旦进入此函数 程序就会进入无限循环 请帮忙 my code include
  • PHP 中全局错误处理的最佳实践?

    我在 PHP 5 中使用了一个将错误转换为异常的类 并将错误记录到文件中和 或通过电子邮件将它们发送到指定帐户 有一个更好的方法吗 我知道这方面有一些东西可以做得更好 我正在使用 set error handler set error ha
  • Oracle 更新批处理模型 - 在同一应用程序中使用两种批处理模型

    Oracle JDBC 支持两种不同的更新批处理模型 标准批处理和 Oracle 特定批处理 根据 oracle 11g JDBC 开发人员指南 在任何单个应用程序中 您可以使用其中一种模型 但不是两者兼而有之 当您混合这些时 Oracle
  • 如何通过诅咒使用终端调色板

    我无法让终端调色板与诅咒一起使用 import curses def main stdscr curses use default colors for i in range 0 7 stdscr addstr Hello curses c
  • 在 IdP 身份验证之后/SP 重定向之前将文本附加到用户帐户

    在经过 IdP 验证之后 系统将其重定向到 SP 之前 我需要将电子邮件域 domain com 附加到用户的帐户 我正在使用此页面寻求帮助 但无法断言是否要逐字输入附加文本 或者引用从 LDAP 检索到的另一个属性 http simple
  • java中的类型切换

    在开始之前 我知道这个问题有很多答案 建议了替代方法 我正在寻求对这种特定方法的帮助 以确定是否可行 如果不可行 则类似的方法可能有效 我有一个方法 它接受一个超类并根据传递的对象的类型调用一个方法 例如 public void handl
  • Intellij 注释快捷方式打开 Mac 菜单栏上的帮助选项卡

    When I use the Cmd Shift keyboard shortcut to comment uncomment a block of code the Help tab on the menu bar in IntelliJ
  • 如何记录 R 参考类?

    如何记录引用类的成员函数的使用 如果我写一个Rd文件带有 usage阻塞 我该如何避免WARNING Functions methods with usage in documentation object XmlDoc but not i
  • Spring Integration,删除出站通道适配器中的文件

    我正在使用 Spring Integration 轮询目录中的文件 在服务类中处理该文件 将该文件写入输出目录 然后删除原始文件 我有以下 XML 配置
  • 在 HTML 中调用匿名函数

    我有一个关于将匿名函数提取到 HTML 的问题 这是我的 HTML 代码行 onclick functionToPull map 如果函数不是匿名的 则 functionToPull 将是函数的名称 如何提取匿名 JavaScript 函数
  • 在 Eclipse 中将现有项目转换为 Android 项目?

    如何在 Eclipse 中将现有项目转换为 Android 项目 特别是 我想将一个普通的旧 Java 项目转换为 Android 库项目 Thanks 您需要更改项目的性质 这个问题已经得到解答 但没有人给出您所需的实际字符串 关闭日食
  • Android 上关闭键盘后返回沉浸模式

    我将沉浸式模式添加到我的应用程序中 这是代码 Override public void onWindowFocusChanged boolean hasFocus super onWindowFocusChanged hasFocus if
  • csv php mysql 数据导出 - 所有数据都导出在一列中

    我需要使用下面的 php 脚本将姓名 给定电话号码 移动注释位置全部放在我的 csv 导出的单独列中 当前代码将每条记录的所有选定数据导出到一列中 谢谢你 result mysql query SELECT who as Name Give
  • Jenkins Pipeline:如何转储错误?

    当尝试打印错误时 e getMessage 或在管道脚本中转储堆栈跟踪 我收到一条错误消息 指出这是不允许的 在这种情况下如何将错误输出到日志中 try deleteJob JOB NAME catch e emailError e get