Dictionary 如何为字典列表设置管道变量并将其传递给groovy

Dictionary 如何为字典列表设置管道变量并将其传递给groovy,dictionary,arraylist,groovy,jenkins-pipeline,Dictionary,Arraylist,Groovy,Jenkins Pipeline,我有以下管道代码: 阶段(“分发”){ 台阶{ 剧本{ def规则=[ [ “服务名称”:“核心”, “现场名称”:“*”, “城市名称”:“*”, “国家/地区代码”:[“*”] ] ] amd_分布_分布_束分布_规则:规则 } } } 在amd_distribution_distribution_bundle.groovy文件中,我试图打印它的值: def call(Map parameters) { def DISTRIBUTION_RULES= parameters.dist

我有以下管道代码:

阶段(“分发”){
台阶{
剧本{
def规则=[
[
“服务名称”:“核心”,
“现场名称”:“*”,
“城市名称”:“*”,
“国家/地区代码”:[“*”]
]
]
amd_分布_分布_束分布_规则:规则
}
}
}
在amd_distribution_distribution_bundle.groovy文件中,我试图打印它的值:

def call(Map parameters) {
    def DISTRIBUTION_RULES= parameters.distribution_rules
    sh '''
        echo ${DISTRIBUTION_RULES}
     '''
}
我在控制台中得到一个空字符串。
您知道缺少什么吗?

您使用的单引号不会从局部变量中插入
${DISTRIBUTION\u RULES}
变量。如果要将其与
sh
step(作为shell脚本执行)一起使用,则需要使用双引号对局部变量的值进行插值

def调用(映射参数){
def分配规则=参数。分配规则
嘘
echo${分布规则}
"""
}
或者,如果您希望使用单引号,但仍要访问
分布规则
值,则需要将其分配给环境变量。但是,请记住,环境变量强制转换分配给
字符串的每个值。因此,如果您尝试将映射分配给一个env变量,您将得到它的字符串表示,而不是真正的映射。shell脚本可以访问管道中设置的所有环境变量

def调用(映射参数){
env.DISTRIBUTION\u RULES=parameters.DISTRIBUTION\u RULES
“嘘”
echo${分布规则}
'''
}