【发布时间】:2014-12-01 12:29:45
【问题描述】:
只有当文件在目标位置不存在时,是否有任何 Ant 任务将文件复制到目标位置?
【问题讨论】:
标签: ant build build-automation
只有当文件在目标位置不存在时,是否有任何 Ant 任务将文件复制到目标位置?
【问题讨论】:
标签: ant build build-automation
分三种情况:
这个问题要求复制仅在案例 1 中发生。默认情况下复制在案例 1 和 2 中发生;将 overwrite 设置为 true 会使复制在所有三种情况下都发生。答案是使用present 选择器:
<copy todir="dest">
<fileset dir="src">
<present present="srconly" targetdir="dest" />
</fileset>
</copy>
【讨论】:
copy task 有一个覆盖属性,默认设置为 false。
overwrite = 覆盖现有文件,即使目标文件是 较新。必需=否;默认为 false。
因此,当 overwrite="false"(默认设置)时,您可以执行复制任务,这意味着:
<copy todir="../dest/dir">
<fileset dir="src_dir">
<exclude name="**/*.java"/>
</fileset>
</copy>
或单个文件:
<copy file="myfile.txt" todir="../some/other/dir"/>
完全符合您的要求。
【讨论】: