Jenkins Groovy代码使用;打印“;,用“扔”;上海";

Jenkins Groovy代码使用;打印“;,用“扔”;上海";,jenkins,groovy,Jenkins,Groovy,此代码适用于: def eventConfig=json root def jsonString=json.toString() def shCommand=“”aws s3api放入存储桶通知配置\ --bucket${sourceBucket}\ --cli输入json“${jsonStringified}” """ 打印命令 如果我将最后一行更改为: sh shCommand 它抛出java.io.NotSerializableException:groovy.json.JsonBui

此代码适用于:

def eventConfig=json root
def jsonString=json.toString()
def shCommand=“”aws s3api放入存储桶通知配置\
--bucket${sourceBucket}\
--cli输入json“${jsonStringified}”
"""
打印命令
如果我将最后一行更改为:

sh shCommand
它抛出
java.io.NotSerializableException:groovy.json.JsonBuilder
,堆栈跟踪以以下开头:

at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)

我完全不知道为什么会发生这种情况。

也许
${jsonstringfied}
包含漂亮的JSON,所以您的命令使用新行中断?这是我想到的第一件事。你的代码为不可序列化的东西分配了一个变量。。我猜是json变量…这个问题被标记为jenkins作业dsl脚本,但您问题中的脚本看起来不像作业dsl作业。您是否正在尝试使用此代码生成Jenkins作业?如果你是,这是詹金斯的dsl工作,我可以马上帮你。如果您正在使用Scriptler插件编写Groovy脚本,那么您应该删除jenkins job dsl标记,我可以帮助您进行一些研究。