我在TeamCity 9.1项目配置中的最后一个构建步骤使用SMB部署者将文件复制到共享网络驱动器(我们用它来将版本部署到我们的用户)。
副本执行正常,但部署者以某种方式创建层次结构中通向lynx --dump -listonly https://soundcloud.com/search/sounds?q=L%20AME%20IMMORTELLE | \
tr "\t\r\n'" ' "' | \
grep -i -o 'http......HERE I NEED THE GREP STUFF' | \
sed -e 's/^.*"\([^"]\+\)".*$/\1/g' \ >k.txt
文件夹的所有文件夹。例如:
我的配置是:
目标网址:
bin
工件路径:
\\theserver\thefolder
使用此配置,我希望将文件复制到**\ProjectName\bin\Release\* => .
**\ProjectName\bin\Release\Resources\* => Resources
和\\theserver\thefolder\*
然而,这是我得到的结果:我的文件被复制到
\\theserver\thefolder\Resources\*
如何使用工件定义,以便将文件复制到正确的文件夹中?我的语法很难用
答案 0 :(得分:3)
**\
前缀导致工件路径输出包含匹配的文件夹层次结构。
您需要使用Project文件夹的完整路径,如果您想要包含嵌套目录,请使用工件路径末尾的**\*
:
\path\to\ProjectName\bin\Release\**\* => .
\path\to\ProjectName\bin\Release\Resources\**\* => Resources
有关详细信息,请参阅artifact path doco,具体为:
通配符 - 发布与类似Ant的通配符模式匹配的文件(仅支持" *"和" **"支持通配符)。通配符应表示相对于构建签出目录的路径。这些文件将被发布
preserving the structure of the directories matched by the wildcard
(与#34匹配的目录;静态"将不会创建文本)。也就是说,TeamCity将从模式中第一次出现通配符开始创建目录。