0

我正在尝试在声明性 jenkinsfile 中动态替换 rtDownload 中的 zip 文件模式,但该值没有被函数占用。

每次构建时都会创建一个具有较新版本的 zip 文件并将其上传到 JFrog,我想在本地系统中下载特定版本。

我在 def VERSION 中定义了“VERSION”并将其用作 -

  rtDownload (
                    serverId: 'Jfrog',
                    
                    spec: '''{
                        "files": [
                            {
                            "pattern": "<path>-<filname>${VERSION}.zip",
                            "target": "<path>-<filename>${VERSION}.zip",
                            "flat": "true"
                            }
                        ]
                    }'''
                )  

但它不会用我通过詹金斯作业中配置的字符串参数提供的版本替换我的 VERSION。

任何建议将不胜感激。谢谢。

4

1 回答 1

0

在 groovy 单引号字符串 ( '') 和单引号多行字符串 ( ''' ''') 中不支持字符串插值,只有双引号字符串支持这一点。您可以在官方文档
中阅读有关 groovy 中字符串插值的更多信息。

因此,要修复它,只需使用双引号多行字符串,这将能够评估您的参数:

rtDownload (
    serverId: 'Jfrog',               
    spec: """{
          "files": [
              {
                 "pattern": "<path>-<filname>${VERSION}.zip",
                 "target": "<path>-<filename>${VERSION}.zip",
                 "flat": "true"
               }
           ]
     }"""
)  
于 2021-07-29T11:05:39.010 回答