Copydir

已弃用

此任务已弃用。请使用 Copy 任务代替。

描述

将目录树从源目录复制到目标目录。

可以细化要复制的文件集。这可以通过 includesincludesfileexcludesexcludesfiledefaultexcludes 属性来实现。使用 includesincludesfile 属性,您可以使用模式指定要包含的文件。使用 excludeexcludesfile 属性指定要排除的文件。这也是使用模式完成的。最后,使用 defaultexcludes 属性,您可以指定是否要使用默认排除。有关文件包含/排除的工作原理以及如何编写模式,请参阅有关 基于目录的任务 的部分。

此任务形成一个隐式 FileSet,并支持 <fileset> 的大多数属性(dir 变成 src),以及嵌套的 <include><exclude><patternset> 元素。

参数

属性 描述 必需
src 要复制的目录。
dest 要复制到的目录。
includes 必须包含的文件模式的逗号或空格分隔列表。 否;默认为所有 (**)
includesfile 文件名称。此文件的每一行都被视为一个包含模式。
excludes 必须排除的文件模式的逗号或空格分隔列表。 否;默认为默认排除,如果 defaultexcludesno 则为无。
excludesfile 文件名称。此文件的每一行都被视为一个排除模式。
defaultexcludes 指示是否应使用默认排除 (yes|no)。 否;默认为 yes
filtering 指示在复制过程中是否应进行令牌过滤。 否;默认为 false
flatten 忽略源目录的目录结构,将所有文件复制到一个目录中,该目录由 dest 属性指定。 否;默认为 false
forceoverwrite 即使目标文件较新,也覆盖现有文件。 否;默认为 false

示例

将目录 ${src}/resources 复制到 ${dist}

<copydir src="${src}/resources"
         dest="${dist}"/>

递归地将目录 ${src}/resources 复制到 ${dist}。复制所有 .java 文件,但名为 Test.java 的文件除外。

<copydir src="${src}/resources"
         dest="${dist}"
         includes="**/*.java"
         excludes="**/Test.java"/>

递归地将目录 ${src}/resources 复制到 ${dist}。复制所有 .java 文件,但 mypackage/test 目录下的文件除外。

<copydir src="${src}/resources"
         dest="${dist}"
         includes="**/*.java"
         excludes="mypackage/test/**"/>