我在用
- TeamCity 企业版 2017.1.2(内部版本 46812)
- Artifactory 专业版 5.3.1 修订版 50046
- Teamcity 已安装 Artifactory 插件(版本 2.3.0)
任务很简单- 从 Artifactory 下载文件到 Teamcity 构建:
- 来自Artifactory
MyRepo/RootFolder/ProjectFolder/1.2.3/<files>
- To TC
%checkoutdir%/artifacts/<files>
The <files>
路径的一部分包含文件夹和文件,我想保留它们的结构。
下载规范 json 为:
{
"files": [
{
"pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/",
"target": "artifacts/"
}
]
}
但是,文件下载到的位置与我预期的不同:
- Actual:
artifacts/RootFolder/ProjectFolder/1.2.3/<files>
- 预期的:
artifacts/<files>
Artifactory 的整个路径将附加在目标目录之后。如何告诉插件仅使用文件的相对路径after指定的根?我尝试过使用通配符、斜杠等,但没有任何帮助。
我必须创建一个额外的构建步骤,手动将文件移动到我期望的结构,但我不想这样做。
工作答案:
{
"files": [
{
"pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/(*)",
"target": "artifacts/{1}",
"flat": "true"
}
]
}
您可以按照所述在文件规范中使用占位符来自定义目标结构here https://www.jfrog.com/confluence/display/RTF/Using+File+Specs#UsingFileSpecs-UsingPlaceholders。
占位符允许您捕获文件规范“模式”属性值的特定部分,并在“目标”属性值中使用它。
在您的情况下,下载的文件规范应如下所示:
{
"files": [
{
"pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/(*)",
"target": "artifacts/{1}"
}
]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)