0
- 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>
- 为TC
%checkoutdir%/artifacts/<files>
路径的<files>
部分包含两个文件夹和文件,我想保留自己的结构。
下载规格JSON是:
{
"files": [
{
"pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/",
"target": "artifacts/"
}
]
}
但是,文件被下载到不同的位置比我预计:
- 实际:
artifacts/RootFolder/ProjectFolder/1.2.3/<files>
- 预计:
artifacts/<files>
来自Artifactory的整个路径被附加到目标目录之后。我如何告诉插件只使用之后指定的根目录下的相对路径?我试图用通配符,斜杠等来摆弄,但没有任何帮助。
我不得不创建一个额外的构建步骤,我手动将文件移动到我期望的结构中,但我宁愿不必这样做。
WORKING答:
{
"files": [
{
"pattern": "MyRepo/RootFolder/ProjectFolder/1.2.3/(*)",
"target": "artifacts/{1}",
"flat": "true"
}
]
}
我尝试过这一点,但预期它不工作 - 让我们说我有一个文件夹中名为'util'。你的文件规范在下载时创建了这个结构:'artifacts/util/RootFolder/ProjectFolder/1.2.3/util/ - 它只是把整个目录树放到一个与(*)匹配的文件夹中。更何况这不会对文件做任何不同的事情。 –
我明白了。所以,如果我正确理解你,你会喜欢文件目录下文件的平面布局。我认为将“flat”:“true”属性添加到您的原始文件规格中应该为您解决问题。 –
谢谢你在正确的方向推动我。我之前尝试过'flat',但没有'(*),{1}'占位符。一起使用可以得到我想要的结果。 –