运行大型Jenkins管道脚本时,可能会出现以下错误:
组织。科德豪斯。非常棒。控制MultipleComplationErrorsException:启动失败:类生成期间出现常规错误:方法代码太大!
Java语言lang.RuntimeException:方法代码太大!
这个错误的原因是什么,如何修复?
如果将声明性管道与共享库一起使用,则可能需要在新方法中重构和外部化全局变量。下面是一个完整的示例:
Jenkins文件:
@Library("my-shared-library") _
myPipeline()
myPipeline.groovy:
def call() {
String SOME_GLOBAL_VARIABLE
String SOME_GLOBAL_FILENAME
pipeline {
stages() {
stage('stage 1') {
steps {
script {
SOME_GLOBAL_VARIABLE = 'hello'
SOME_GLOBAL_FILENAME = 'hello.txt'
...
}
}
}
stage('stage 2') {
steps {
script {
doSomething(fileContent: SOME_GLOBAL_VARIABLE, filename: SOME_GLOBAL_FILENAME)
sh "cat $SOME_GLOBAL_FILENAME"
}
}
}
}
}
}
def doSomething(Map params) {
String fileContent = params.fileContent
String filename = params.filename
sh "echo $fileContent > $filename"
}
这是由于Java和Groovy之间的限制,要求方法字节码不大于64kb。这不是由于詹金斯管道DSL。
要解决这个问题,不要使用单一的单片管道脚本,而是将其分解为方法并调用这些方法。
例如,而不是:
stage foo
parallel([
... giant list of maps ...
])
相反,请执行以下操作:
stage foo
def build_foo() {
parallel([
...giant list of maps...
])}
build_foo()
当我在jenkins中运行多分支管道代码时,我收到以下的以下错误: java.lang.NoSuchMethodError:在步骤中找不到这样的DSL方法“管道”[archive,bat,build,catchError,checkout,deleteDir,dir,echo,emailext,EmailExtrecients,error,fileExists,getContext,git,inp
我试图运行ionic build Android--release命令来构建apk,但是我得到了这个错误 构建失败 总时间:2.623秒错误:cmd:命令失败,退出代码为1错误输出:失败:生成失败,出现异常。 错误:配置root项目'Android'时出现问题。您尚未接受以下SDK组件的许可协议:[Android SDK Platform25]。在构建项目之前,您需要接受许可协议,并使用Andro
我需要重载jenkins函数来调试IDE中的管道脚本。 我是java/groovy等的新手。我将编写几百行脚本化管道。Groovy是基于java的。由于我是新手,我更喜欢函数名完成/建议和调试功能,在这里我可以一步一步地浏览这些行并查看vars中的内容。 我用groovy插件设置了一个EclipseLuna。这实际上是有效的=)!(对于最新的eclipse,插件还没有准备好)。调试也很酷! 但是特
问题内容: 我想使用Jenkins 2.x Groovy Script Build Pipeline开始Sonar项目分析。 我在Maven中配置了声纳,所以没什么大不了的: 但是我如何从声纳获得结果呢?甚至更好的是,我如何确定是否达到了质量要求,以便停止构建管道。 据我所知,自从某些声纳版本以来,构建破坏者的概念就已过时。或您将如何处理。 我仍然认为,如果项目的基础代码太糟糕,则停止/暂停构建管
我正在使用最新的Android Studio Canary build和最新的Kotlin为Android创建一个非常彻底的转换器。我突然得到一个编译错误,即使认为Android工作室没有看到任何bug在代码,它是抱怨一个后端错误,所以我认为我的项目是好的,但Android工作室有一个bug??请帮忙确认一下,这已经是很多工作了.... 它是在抱怨我的类MassCalc,它有6500行长,因为有很
失败:生成失败,出现异常。 出错原因:任务':app:ProcessDebugGoogleServices'执行失败。 这是我在连接到firebase并运行应用程序后得到的错误。