将文件从 Artifactory 下载到 Teamcity 而不保留完整路径

Download files from Artifactory to Teamcity without retaining their full path

我正在使用

任务很简单 - 从 Artifactory 下载文件到 Teamcity 构建:

路径的 <files> 部分包含文件夹和文件,我想保留它们的结构。

下载规范 json 是:

{
  "files": [
    {
      "pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/",
      "target": "artifacts/"
    }
  ]
}

但是,文件下载到的位置与我预期的不同:

Artifactory 的整个路径附加在目标目录之后。如何告诉插件只使用文件的相对路径 after 指定的根目录?我试过摆弄通配符、斜杠等,但没有任何帮助。

我不得不创建一个额外的构建步骤,在该步骤中我手动将文件移动到我期望的结构,但我不想这样做。


有效答案:

{
  "files": [
    {
      "pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/(*)",
      "target": "artifacts/{1}",
      "flat": "true"
    }
  ]
}

您可以按照 here 所述在文件规范中使用占位符来自定义目标结构。 占位符允许您捕获文件规范 "pattern" 属性 值的特定部分,并在 "target" 属性 值中使用它。

对于您的情况,下载文件规范应如下所示:

{
  "files": [
    {
      "pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/(*)",
      "target": "artifacts/{1}"
    }
  ]
}