Jenkins管道脚本失败,并显示“类生成期间出现一般错误:方法代码太大!”。

Pet*_*Nab 8 jenkins jenkins-pipeline

当运行大型Jenkins管道脚本时,它会给出错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:类生成期间的一般错误:方法代码太大!

java.lang.RuntimeException:方法代码太大!

此错误的原因是什么,如何解决?

Pet*_*Nab 6

这是由于Java和Groovy之间的限制,要求该方法的字节码不得大于64kb。这不是由于Jenkins Pipeline DSL。

为了解决这个问题,不要使用单个整体式管道脚本,而是将其分解为方法并调用这些方法。

例如,与其具有:

stage foo
parallel([
 ... giant list of maps ...
])
Run Code Online (Sandbox Code Playgroud)

而是:

stage foo
def build_foo() {
  parallel([
     ...giant list of maps...
  ])}
build_foo()
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。这对我有用。但语法应该是 def build_foo() { parallel([ ...giant list of maps... ])} stage foo 步骤 {build_foo() } (2认同)