我有下面的管道代码:
stage ("distribution"){
steps{
script{
def rules = [
[
"service_name": "core",
"site_name": "*",
"city_name": "*",
"country_codes": ["*"]
]
]
amd_distribution_distribute_bundle distribution_rules: rules
}
}
}
在amd_distribution_distribute_bundle.groovy
文件中,我尝试打印它的值:
def call(Map parameters) {
def DISTRIBUTION_RULES= parameters.distribution_rules
sh '''
echo ${DISTRIBUTION_RULES}
'''
}
我在控制台里得到了一个空字符串。你知道少了什么吗?
1条答案
按热度按时间0ejtzxu11#
您使用的单引号不会从局部变量插入
${DISTRIBUTION_RULES}
变量。如果要将其与sh
步骤一起使用(作为shell脚本执行),则需要使用双引号从局部变量插入值。或者,如果您想使用单引号但仍然访问
DISTRIBUTION_RULES
值,则需要将其分配给环境变量。但是,请记住,该环境变量会强制转换分配给String
的每个值。因此,如果您尝试将Map分配给env变量,则将获得其字符串表示。而不是真正的Map。shell脚本可以访问管道中设置的所有环境变量。