Jenkins 更新后,readJSON 和 readYaml 停止在 Jenkins 中工作

readJSON and readYaml stopped working in Jenkins after Jenkins Update

我已经在我的 Jenkins 中安装了 Pipeline Utility Steps 插件,我曾经使用 readJSONreadYaml 没有任何问题。

一个月后,当我尝试它时,我得到了他们两个的以下错误

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 Job 中执行相同的命令时,它工作得非常好,我能够从 Yaml 和 Json 中读取值。所以我认为 JenkinsURL/script 无法使用 Pipeline Utility Scripts 插件。

我可以完成我的工作,但仍然想了解为什么它在这里失败 JenkinsURL/script.

我花了一天的大部分时间来解决同样的问题。这在脚本控制台中失败:

def jstring = '{"one":1, "two":2}'
def jobj = readJSON text: jstring

感谢您的 post,我在试管中试了一下,效果很好:

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

我已经在 J​​enkins Jira 中为这个插件记录了一个问题:https://issues.jenkins.io/browse/JENKINS-65910

我会根据 Jenkins 的任何回复更新此 post。