我试图复制ant
文件夹的内容,需要保留文件的权限。
我使用了以下ant
代码:
<exec executable="cp">
<arg line="-pr env/* ." />
</exec>
当我尝试手动执行命令时,它可以工作,但是当我运行ant文件时,我得到以下错误:
deploy.add.op:
[exec] cp: cannot access env/*
[exec] Result: 2
BUILD SUCCESSFUL
有什么建议吗?
Ant不能展开*
通配符。你需要复制每个子文件夹在它自己:
<exec executable="cp">
<arg line="-pr env/sub1 ." />
</exec>
<exec executable="cp">
<arg line="-pr env/sub2 ." />
</exec>
..
或者如果这还不够,您可以生成bash:
<exec executable="bash">
<arg line="-c 'cp -pr env/* .'" />
</exec>
,但后者只能在安装了bash的系统上工作。
也看看rsync
而不是cp
。可能更好,因为它可以清理旧文件。然而,使用bash
和rsync
这样的工具将使您的脚本绑定到*NIX系统。