`
shugengen
  • 浏览: 19757 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

[转]Ant Copy Tasks对文件和目录的复制

阅读更多
4.5 Copy Task:对文件和目录进行复制
Copy 任务把一个或多个文件复制到指定的目录下。但要注意的是,如果目标目录下具有同名的文件,那么只有当源文件相对于目标文件更新时,Ant工具才会复制这个文件。在Copy任务中可以使用FileSet类型来定义文件集合。

4.5.1 Copy Task的属性及功能
Copy 任务具有以下属性:

(1)file:用于指定要复制的源文件。

(2)preservelastmodified:作用是使得复制后的文件与源文件的最后修改时间相同。默认为false。

(3)tofile:用于指定要复制到的文件。

(4)todir:用于指定要复制到的目标目录。todir和tofile只能使用其中一个属性。

(5)overwrite:用于指定是否需要覆盖目录和文件,不管文件是否比源文件新,都会覆盖。默认为false。

(6)filtering:用于指定在复制时是否使用构件文件的全局过滤器对文件进行过滤。默认为false。

(7)flatten:用于指定是否需要复制目录,如果为true代表把所有的文件复制到todir属性设定的目录下。默认为false,复制目录。

(8)includeEmptyDirs:用于指定是否复制空目录。默认为true。

(9)failonerror:用于指定当遇到错误时是否停止执行。默认为true。

(10)verbose:用于指定当复制文件时是否记录日志信息。

(11)encoding:用于设定复制文件时的编码或文件过滤器使用的编码方式。默认时使用Java虚拟机的编码方式。

(12)outputencoding:指定写文件时的编码方式。默认时使用Java虚拟机的编码方式。

(13)enablemultiplemappings:用于设定是否允许多个映射。默认为false。

(14)granularity:用于指定一个文件修改时间的毫秒数据的允许误差。因为不是所有的文件系统的修改时间都是精确到毫秒数。默认时为0,如果为DOS系统则为2。

4.5.2 通过Copy Task实现文件和目录复制功能实例
不管是对程序进行打包还是一般的文件操作,基本上都离不开复制功能。通过Ant工具的Copy任务可以让程序在Windows和Linux/UNIX下对文件和目录进行复制操作。例如:

(1)对单个文件进行复制:

<copy file="myfile.txt" tofile="mycopy.txt"/>

这个例子的作用是在当前目录复制myfile.txt,并把复制的文件命名为mycopy.txt。当需要把文件复制到别外的目录时可以这样编写:

<copy file="myfile.txt" todir="../some/other/dir"/>

这个例子的作用是把文件复制到与当前目录同级的some目录的/other/dir子目录下。这里“..”代表相对路径(当前目录的上一级目录)。

(2)对文件目录进行复制:

<copy todir="../new/dir">

    <fileset dir="src_dir"/>

</copy>

这个例子的作用是把src_dir目录复制到../new/dir目录下。有时对文件进行复制时需要对文件进行备份。下面举一个复制文件时对文件进行备份的例子。

<copy todir="../backup/dir">

<fileset dir="src_dir">

    <exclude name="**/*.java"/>

   </fileset>

<globmapper from="*" to="*.bak"/>

</copy>

这个例子的作用是把src_dir目录及其子目录下所有非Java文件复制到../backup/dir目录下,并重命名为bak文件,以作备份。

4.5.3 在执行Copy Task时使用文件过滤的实例
下面是一个复制文件的同时替换文件中的特殊符号的例子:

<copy todir="../backup/dir">

    <fileset dir="src_dir"/>

    <filterset>

      <filter token="TITLE" value="Foo Bar"/>

    </filterset>

</copy>

这个例子的作用是把src_dir目录下的所有文件复制到../backup/dir目录,并在所有文件中查找并替换@TITLE@为Foo Bar。当要进行新产品发布时通过需要替换文件中的版本信息和时间信息。

说明:在Ant工具中还提供了copydir和copyfile这两个特定的任务,分别用于对目录和文件进行复制。但自从有了Copy任务后,这两个任务已过期,不建议再使用,应该统一使用Copy任务。

分享到:
评论

相关推荐

    maven-ant-tasks-2.1.3.zip

    使用 Maven Ant Tasks 的第一步是将其添加到 Ant 构建文件(build.xml)中。通过在 `path` 元素中引入 `maven-ant-tasks-2.1.3.jar`,确保 Ant 能够识别并执行 Maven 相关的任务。例如: ```xml ...

    使用Flex Ant Tasks编译工程文件

    5. **copy** 和 **move**:这些任务用于在构建过程中移动文件,例如复制库到指定目录,或者在编译后将SWF文件移动到Web服务器的发布目录。 在实际使用中,你还需要确保正确安装并配置了Adobe Flex SDK和Ant。通常,...

    Ant 批处理 Unicode转码

    Ant通过定义任务(Tasks)来完成构建过程,其中包括文件操作,如复制、移动、删除和转换编码。在Ant中,我们可以使用`&lt;filter&gt;`任务结合`&lt;copy&gt;`或`&lt;move&gt;`任务来实现文件的编码转换。`&lt;filterchain&gt;`元素允许我们...

    ant的build文件说明

    它的核心概念是基于XML的build文件,这个文件定义了一系列的任务(tasks)和目标(targets),来指导Ant如何执行构建过程。在给定的标题“ant的build文件说明”中,我们关注的是如何理解和使用Ant的build文件。 `...

    Ant 配置文件详解

    本文将深入解析Ant配置文件的各个方面,帮助你理解和掌握Ant的工作原理。 一、`build.xml` 文件结构 `build.xml` 文件遵循XML语法,包含了一系列的目标(targets)和任务(tasks)。每个目标可以包含多个任务,任务...

    一个常用的ant的build.xml

    3. **任务(Tasks)**:Ant的任务是执行具体操作,如`javac`用于编译Java源代码,`copy`用于复制文件,`jar`用于创建JAR包等。 4. **文件集(Filesets)**:文件集允许我们指定一组文件或目录,这些可以在任务中...

    ant工具ant资源包

    3. **任务(Tasks)**:任务是Ant的基本执行单元,比如`javac`任务用于编译Java源码,`copy`任务用于复制文件,`jar`任务用于创建JAR文件等。Ant提供了大量的内置任务,并且可以通过扩展自定义任务。 4. **属性...

    Ant构建文件

    每个任务由一系列`&lt;task&gt;`组成,比如`&lt;javac&gt;`用于编译Java源码,`&lt;jar&gt;`用于打包成JAR文件,`&lt;copy&gt;`用于复制文件等。 构建文件的结构通常包括以下部分: - **属性(Properties)**:用于存储和传递值,如版本号、...

    ant 使用指南-ant入门

    - **任务(Tasks)**:Ant提供了一系列内置的任务,如`&lt;javac&gt;`用于编译Java源码,`&lt;copy&gt;`用于复制文件,`&lt;jar&gt;`用于创建JAR文件等。 2. **Ant的任务和任务属性** - **任务**:用于编译Java源代码,可以指定源...

    ant介绍Ant是什么

    2. `&lt;copy&gt;`:用于复制文件或目录。 3. `&lt;mkdir&gt;`:创建目录。 4. `&lt;delete&gt;`:删除文件或目录。 5. `&lt;jar&gt;`:打包 Java 应用为 JAR 文件。 6. `&lt;war&gt;`:打包 Web 应用为 WAR 文件。 7. `&lt;ear&gt;`:打包企业级应用为 ...

    ant脚本资料ant

    - **copy任务**:用于复制文件或目录,可以进行过滤和重命名操作。 - **jar任务**:创建Java档案(JAR)文件,可以包含manifest文件和类路径。 - **delete任务**:删除文件或目录,常用于清理构建过程产生的临时...

    ant_1.2.6 ant_1.2.6.zip

    任务是Ant的基本构建块,比如`javac`任务用于编译Java源代码,`jar`任务用于打包结果,`copy`任务用于复制文件等。目标是一系列任务的集合,可以按顺序执行,一个典型的构建流程可能包含编译、测试、打包和部署等多...

    apache-ant-1.6.0-bin.zip_ant 1_ant 1.6_ant 1.6.0_ant-1.6.0_apach

    Ant的核心概念是任务(Tasks),这些任务是可执行的动作,如`javac`用于编译Java源代码,`jar`用于打包类文件为JAR文件,`copy`用于复制文件,`delete`用于删除文件或目录等。用户可以通过扩展Ant的任务或者编写...

    ant

    4. **内置任务**:Ant自带了许多内置任务,如`javac`用于编译Java源代码,`jar`用于创建JAR文件,`copy`用于复制文件或目录,`delete`用于删除文件或目录等。 5. **自定义任务**:除了内置任务,开发者还可以编写...

    apache-ant-1.10.3-bin.zip

    - **copy**:用于复制文件和目录。 - **delete**:用于删除文件和目录。 - **mkdir**:创建目录。 - **tstamp**:为文件添加时间戳。 - **junit**:用于运行JUnit测试。 此外,Ant 还允许通过扩展和插件机制来实现...

    ANT中文文档

    2. `copy`任务:用于复制文件或目录,可以重命名文件,或者只复制新文件或修改过的文件。 3. `jar`任务:创建Java的JAR文件,便于部署和分发。 4. `delete`任务:删除文件或目录。 5. `mkdir`任务:创建目录。 6. `...

    Ant权威指南(ant 学习)

    Ant提供了丰富的任务来处理文件和目录,如`copy`、`move`、`delete`、`mkdir`等,以及`tstamp`用于添加时间戳。 十、JAR和WAR打包 Ant可以方便地创建JAR和WAR包,使用`jar`和`war`任务,配合`manifest`元素可以定制...

    ant1.9包下载

    Ant 1.9.x版本中包含了丰富的内置任务,如javac用于编译Java源码,jar用于创建JAR文件,copy用于文件复制,以及clean用于清理构建产物等。此外,Ant还允许开发者自定义任务,以适应项目特有的需求。 在Ant的配置...

    Ant 详细教程,包含pdf和doc文件

    3. 任务(Tasks):Ant提供了丰富的内置任务,如`javac`用于编译Java源码,`jar`用于创建JAR文件,`copy`用于复制文件等。 四、Ant编写 1. `&lt;project&gt;`元素:这是Ant构建文件的根元素,通常包含项目的基本信息,如...

Global site tag (gtag.js) - Google Analytics