Jenkins 更新后,readJSON 和 readYaml 停止在 Jenkins 中工作
readJSON and readYaml stopped working in Jenkins after Jenkins Update
我已经在我的 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 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
我已经在 Jenkins Jira 中为这个插件记录了一个问题:https://issues.jenkins.io/browse/JENKINS-65910
我会根据 Jenkins 的任何回复更新此 post。
我已经在我的 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 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
我已经在 Jenkins Jira 中为这个插件记录了一个问题:https://issues.jenkins.io/browse/JENKINS-65910
我会根据 Jenkins 的任何回复更新此 post。