我已经在 Jenkins 中安装了 Pipeline Utility Steps 插件,并且我曾经使用 readJSON 和 readYaml 没有任何问题。
一个月后,当我尝试时,我都收到以下错误
groovy.lang.MissingMethodException: No signature of method: Script1.readJSON() is applicable for argument types: (java.util.LinkedHashMap) values: [[file:/data/ecsnames/dev_ECSNames.json]]
readYaml 步骤的错误也类似。
我不知道它是怎么突然停止工作的。我从一位队友那里得到的唯一信息是 Jenkins 几周前已更新到 2.235.5 版本。
我使用了以下命令
def clstrndsrvcnme = readJSON file: "/data/ecsnames/dev_ECSNames.json"
有人可以帮我解决这个问题吗?这个错误意味着什么?
更新*
所以我在 JenkinsURL/script 尝试上述命令。有一个小 IDE 可以运行 groovy 脚本。我在那里进行各种调试。 在那个位置它抛出了错误。
但是当我从 Jenkins 作业运行相同的命令时,它工作得很好,并且我能够从 Yaml 和 Json 读取值。所以我相信,不知何故 JenkinsURL/script 无法使用 Pipeline Utility Scripts 插件。
我能够完成我的工作,但仍然想了解为什么它在这里失败JenkinsURL/script。
最佳答案
我花了一天的大部分时间来解决这个同样的问题。这在脚本控制台中失败:
def jstring = '{"one":1, "two":2}'
def jobj = readJSON text: jstring
感谢您的帖子,我在测试管道中进行了尝试,它有效:
pipeline {
agent any
stages {
stage('readjson') {
steps {
script {
def jstring = '{"one":1, "two":2}'
def jobj = readJSON text: jstring
echo jobj.toString()
}
}
}
}
}
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in C:\Program Files (x86)\Jenkins\workspace\readJSON
[Pipeline] {
[Pipeline] stage
[Pipeline] { (readjson)
[Pipeline] script
[Pipeline] {
[Pipeline] readJSON
[Pipeline] echo
{"one":1,"two":2}
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
我已在 Jenkins Jira 中记录了此插件的问题:https://issues.jenkins.io/browse/JENKINS-65910
我将用 Jenkins 的任何回复更新这篇文章。
关于json - Jenkins 更新后,readJSON 和 readYaml 在 Jenkins 中停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64314913/