在 Jenkinsfile 中使用 Tuple 时出现不可批准的 RejectedAccessException

tug*_*aim 4 jenkins jenkins-groovy jenkins-pipeline

我尝试在 Jenkinsfile 中使用 Tuple。

我写的行是def tupleTest = new Tuple('test', 'test2').

然而,Jenkins 没有接受这一行,并继续将以下错误写入控制台输出:

找不到这样的构造函数:new groovy.lang.Tuple java.lang.String java.lang.String。管理员可以决定是否批准或拒绝此签名。

...

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:找不到这样的构造函数:new groovy.lang.Tuple java.lang.Integer java.lang.String

...

当我访问“脚本批准”配置时,我看不到任何等待批准的脚本。

按照链接,我尝试安装并启用“ Permissive Security ”插件,但它也没有帮助 - 错误是相同的。

我什至尝试手动将有问题的签名添加到scriptApproval.xml文件中。添加后,我可以在批准的签名列表中看到它,但错误仍然存​​在。

我做错了什么吗?

Dan*_*uiu 5

我在尝试在詹金斯上使用元组时遇到了同样的问题,所以我发现我可以简单地使用列表文字来代替:

def tuple = ["test1", "test2"]
Run Code Online (Sandbox Code Playgroud)

这相当于

def (a, b) = ["test1", "test2"]
Run Code Online (Sandbox Code Playgroud)

所以现在,我在方法中返回一个列表,而不是返回一个元组

def myMethod(...) {
    ...
    return ["test 1", "test 2"]
}

...

def (a, b) = myMethod(...) 
Run Code Online (Sandbox Code Playgroud)