jenkins - 在 Jenkinsfile 中使用 Tuple 时无法批准 RejectedAccessException

标签 jenkins jenkins-pipeline jenkins-groovy

我尝试在 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/

相关文章:

maven - Jenkins 多分支管道 - mvn 未被识别为命令

jenkins - 如何避免 Jenkins 多分支管道作业触发自身

jenkins-pipeline - Jenkinsfile - 代理匹配多个标签

Jenkins : Groovy : Scripts not permitted to use method groovy. lang.GroovyObject getProperty java.lang.String

jenkins - 如何以编程方式列出 jenkins 作业脚本路径

git - 为什么我无法将 Git Url 添加到我的 Jenkins?

java - Jenkinsfile 写入 JSON 文件

jenkins pipeline 中的 Maven 生命周期 - 如何最好地分离职责?

jenkins - Jenkinsfile 库方法文档

jenkins - 如何在本地编译 Jenkins Pipeline Groovy?