Groovy - Jenkins 管道 - Groovy CPS 不通过 .each Line 方法

Groovy - Jenkins Pipeline - Groovy CPS doesn't go trough .eachLine method

我正在尝试 运行 Jenkins 管道脚本中的这段代码:

def getTags = { svnurl ->
    def command = ["svn","ls","${svnurl}"];
    def proc = command.execute()
    proc.waitFor()

    proc.in.eachLine {
        println(it)
    }    
}

getTags('http://svnurlexample.net/');

结果应该是 svn 位置的文件夹列表,但我得到的是一个错误:

[管道]回声:

1.0.0/

本应调用 java.lang.ProcessImpl$ProcessPipeInputStream.eachLine 但最终调用了 org.jenkinsci.plugins.workflow.cps.CpsClosure2.call

proc.in.eachLine 导致了这个问题,好像 Groovy 找到了该位置上的第一个文件夹但无法处理其余文件夹并报告错误。

这对我有用:

@NonCPS
def getTags (svnurl) {
    def command = ["svn","ls","${svnurl}"];
    def proc = command.execute()
    proc.waitFor()

    proc.in.eachLine {
        println(it)
    }    
}

getTags('http://svnurlexample.net/');