gpt4 book ai didi

Jenkins 声明性管道抛出 org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException : unclassified getAt method

转载 作者:行者123 更新时间:2023-12-01 06:11:27 27 4
gpt4 key购买 nike

我在 Jenkins 中定义了一个共享库:

import com.codependent.jenkins.pipelines.Utils

def call(List<String> mavenGoals){
def processedMavenGoals = mavenGoals.join ' '
pipeline {
agent any
...
}

如果我像这样从我的项目的 Jenkinsfile 中调用它,它就可以正常工作:

#!groovy
@Library('jenkins-pipeline-shared-library-example') _
buildPipeline(['clean', 'install'])

但是,如果我在 Groovy 语法允许的情况下省略了括号:

#!groovy
@Library('jenkins-pipeline-shared-library-example') _
buildPipeline ['clean', 'install']

执行显示以下异常。为什么?

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified getAt method buildPipeline[java.util.ArrayList]
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetArray(SandboxInterceptor.java:451)
at org.kohsuke.groovy.sandbox.impl.Checker$10.call(Checker.java:413)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetArray(Checker.java:418)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getArray(SandboxInvoker.java:45)
at com.cloudbees.groovy.cps.impl.ArrayAccessBlock.rawGet(ArrayAccessBlock.java:21)
at WorkflowScript.run(WorkflowScript:3)
at ___cps.transform___(Native Method)

最佳答案

我在更新 jenkins 后遇到了类似的问题。

在我的例子中,堆栈跟踪还显示了一个 org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException[...]

原因

Jenkins 有一个安全插件可以阻止 Jenkinsfile 中的某些方法调用。

解决方案

允许这些有时无害的调用:

  1. 转到:http://JENKINS_HOST/scriptApproval/ ( Official Documentation )
  2. 批准 Jenkinsfile 中被拒绝的操作 enter image description here
  3. 重新运行失败的构建以查看 Jenkinsfile 是否正常工作

关于Jenkins 声明性管道抛出 org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException : unclassified getAt method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46429657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com