Jenkins 使用流DSL将构建流迁移到管道中

Jenkins 使用流DSL将构建流迁移到管道中,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,我有一个项目需要使用groovy编写的flow dsl插件脚本从旧的构建流迁移到管道中,我遇到了几个问题。根据我下面的代码片段,我得到的一个问题是“预期调用Script1.func1但最终捕获构建”,但它实际上会触发构建,但似乎不会执行“gv.funct1(param1,param2)下面的行,脚本将以“java.lang.ArrayIndexOutOfBoundsException:5”结尾。我认为它们与CPS相关,因为”“func1”中的“build job”?我试着在“def func1”

我有一个项目需要使用groovy编写的flow dsl插件脚本从旧的构建流迁移到管道中,我遇到了几个问题。根据我下面的代码片段,我得到的一个问题是“预期调用Script1.func1但最终捕获构建”,但它实际上会触发构建,但似乎不会执行“gv.funct1(param1,param2)下面的行,脚本将以“java.lang.ArrayIndexOutOfBoundsException:5”结尾。我认为它们与CPS相关,因为”“func1”中的“build job”?我试着在“def func1”之前加上@NonCPS,但没有效果。有什么建议可以解决这个问题吗

我在script.groovy中有一个方法,如下所示:

def func1 (param1, param2) {
    build job: param1, parameters: [string(name: 'PARAMETER2', value: 'param2')]
}
pipeline {
    stages {
       stage ("Build") {
           steps {
                 ...
                 gv = load "scripts.groovy"
                 
                 def myFile = readFile (fileToBeRead)

                 for (int i = 0; i < myFile.size(); i++) {
                     String[] param = ""
                     param = myFile.split(',')
                     gv.func1 (param[0], param[1])
                     ....
                 }
           }
       }
    }
}
在管道中我有:

def func1 (param1, param2) {
    build job: param1, parameters: [string(name: 'PARAMETER2', value: 'param2')]
}
pipeline {
    stages {
       stage ("Build") {
           steps {
                 ...
                 gv = load "scripts.groovy"
                 
                 def myFile = readFile (fileToBeRead)

                 for (int i = 0; i < myFile.size(); i++) {
                     String[] param = ""
                     param = myFile.split(',')
                     gv.func1 (param[0], param[1])
                     ....
                 }
           }
       }
    }
}
管道{
舞台{
舞台(“建造”){
台阶{
...
gv=load“scripts.groovy”
def myFile=readFile(fileToBeRead)
对于(int i=0;i
您应该让
script.groovy
的最后返回这个
,在哪一行有java.lang.ArrayIndexOutOfBoundsException?