如何在詹金斯中创建带有参数变量的 json 文件?

How to create json file with parameter varible in jenkins?

我正在使用 echo 语句创建 json 文件,只要静态字符串就可以正常工作。

echo '
{
    "common": {
        "baseUri": "https://mycompany.com",
        "ipPrefix": "192.23.4.",
     }
}' > test.json

但是当我需要在 echo 命令中插入字符串时,它不起作用。

 echo '
    {
        "common": {
            "baseUri": "$company_name",
            "ipPrefix": "192.23.4.",
         }
    }' > test.json

如何在 jenkins 中创建替换参数值的 json 文件?

问题是由于评论中建议的引用引起的。

下面的脚本应该适合您:

company_name="https://mycompany.com"
echo '{
     "common": {
          "baseUri": "'$company_name'",
          "ipPrefix": "192.23.4."
     }
}' > test.json

输出:

{
     "common": {
          "baseUri": "https://mycompany.com",
          "ipPrefix": "192.23.4."
     }
}

任何变量的值不能用单引号'读取,因为它只表示文字其中所有字符的值。 要获得 company_name 的值,我们需要结束单引号,然后添加变量并再次开始单引号。

Parameter expansion
Quoting

使用 pipeline utility steps plugin,您可以将任何 groovy 映射直接写入 JSON 文件:

def company_name = "http://mycompany.com/"
def map = [ 
    "common" : [ 
        "baseUri": company_name,
        "ipPrefix": "192.23.4."
    ]
]

writeJSON json: map, file: test.json