我可以从Jenkins管道中的普通Groovy方法运行并行操作吗?

我可以从Jenkins管道中的普通Groovy方法运行并行操作吗?,jenkins,groovy,Jenkins,Groovy,My Jenkins管道是以声明方式指定的。然而,在我想介绍一个并行步骤的地方,我被迫进入普通Groovy方法: def call(Map parameters) { runFirstStep(parameters) // add second step that runs in parallel to runFirstStep } 尽管我在Groovy和Jenkins方面没有经验,但我希望做一些简单的工作,比如: def call(Map parameters) {

My Jenkins管道是以声明方式指定的。然而,在我想介绍一个并行步骤的地方,我被迫进入普通Groovy方法:

def call(Map parameters) {
    runFirstStep(parameters)
    // add second step that runs in parallel to runFirstStep
}
尽管我在Groovy和Jenkins方面没有经验,但我希望做一些简单的工作,比如:

def call(Map parameters) {
    parallel(
        'First step': {
            runFirstStep(parameters)
        },
        'Second step': {
            runSecondStep(parameters)
        }
    )
}
然而,这似乎以一种不合适的方式混淆了声明性代码和命令性代码,并导致了神秘的NullPointerException

还有其他可行的解决方案吗?还是覆盖围绕此的声明性部分是压缩另一个并行步骤的唯一选项

def call(Map parameters) {

    def steps = [:]

    steps['First step'] = {
        node('master') {
            runFirstStep(parameters)
        }
    }

    steps['Second step'] = {
        node('master') {
            runSecondStep(parameters)
        }
    }

    parallel steps.plus([failFast: true])

}