使用Jenkins工作流Groovy脚本避免脚本批准的一些技巧是什么?

使用Jenkins工作流Groovy脚本避免脚本批准的一些技巧是什么?,groovy,jenkins-workflow,Groovy,Jenkins Workflow,Jenkins工作流插件的以下脚本: def mapping = readFile 'a file' mapping.eachLine { def line = it.tokenize('|') sh "${line[1]}" } 需要脚本批准: staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods tokenize java.lang.String java.lang.String staticMe

Jenkins工作流插件的以下脚本:

def mapping = readFile 'a file'
mapping.eachLine {
      def line = it.tokenize('|')
      sh "${line[1]}"
}
需要脚本批准:

staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods tokenize java.lang.String java.lang.String
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods eachLine java.lang.String java.lang.String
为了使脚本成功运行,必须尝试生成,必须授予手动批准,然后必须再次尝试另一个生成,依此类推

对于大型脚本,保留白名单方法是一个相当繁琐的过程


是否有一部分groovy方法不需要脚本批准和/或白名单?

您只需要在新运行的方法出现时批准它们

脚本安全插件附带的一些方法已被列入白名单。您在此处列出的方法尚未实现。跟踪默认情况下将常规计算方法列入白名单的愿望


请注意,如果您使用的是来自SCM脚本源的Groovy CPS DSL,则故意没有禁用沙箱模式的选项,即使用整个脚本批准模式。这是因为管理员需要在每次提交的编辑之后批准整个脚本,无论它多么微不足道。相比之下,在Groovy CPS DSL源代码中,管理员所做的每一次编辑都会立即被记录为已批准,无需单独的步骤。

I get
ERROR:无法评估Groovy脚本。org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:脚本不允许使用方法groovy.lang.Script println java.lang.Object
——这是否表示服务器配置错误?