我尝试在 Jenkinsfile 中使用元组。
我写的那行是def tupleTest = new Tuple('test', 'test2')
。
但是,Jenkins 不接受这一行,并继续将以下错误写入控制台输出:
No such constructor found: new groovy.lang.Tuple java.lang.String java.lang.String. Administrators can decide whether to approve or reject this signature.
...
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: No such constructor found: new groovy.lang.Tuple java.lang.Integer java.lang.String
...
当我访问“脚本批准”配置时,我看不到任何等待批准的脚本。
正在关注 this链接,我尝试安装并启用“Permissive Security”插件,但它也没有帮助 - 错误是一样的。
我什至尝试手动将有问题的签名添加到 scriptApproval.xml
文件中。添加后,我在已批准的签名列表中可以看到它,但错误仍然存在。
我做错了什么吗?
最佳答案
我在尝试在 jenkins 上使用元组时遇到了同样的问题,所以我发现我可以简单地使用列表文字来代替:
def tuple = ["test1", "test2"]
相当于
def (a, b) = ["test1", "test2"]
所以现在,我不是返回一个元组,而是在我的方法中返回一个列表
def myMethod(...) {
...
return ["test 1", "test 2"]
}
...
def (a, b) = myMethod(...)
关于jenkins - 在 Jenkinsfile 中使用 Tuple 时无法批准 RejectedAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55209727/