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 的第一步是将其添加到 Ant 构建文件(build.xml)中。通过在 `path` 元素中引入 `maven-ant-tasks-2.1.3.jar`,确保 Ant 能够识别并执行 Maven 相关的任务。例如: ```xml ...
5. **copy** 和 **move**:这些任务用于在构建过程中移动文件,例如复制库到指定目录,或者在编译后将SWF文件移动到Web服务器的发布目录。 在实际使用中,你还需要确保正确安装并配置了Adobe Flex SDK和Ant。通常,...
Ant通过定义任务(Tasks)来完成构建过程,其中包括文件操作,如复制、移动、删除和转换编码。在Ant中,我们可以使用`<filter>`任务结合`<copy>`或`<move>`任务来实现文件的编码转换。`<filterchain>`元素允许我们...
它的核心概念是基于XML的build文件,这个文件定义了一系列的任务(tasks)和目标(targets),来指导Ant如何执行构建过程。在给定的标题“ant的build文件说明”中,我们关注的是如何理解和使用Ant的build文件。 `...
本文将深入解析Ant配置文件的各个方面,帮助你理解和掌握Ant的工作原理。 一、`build.xml` 文件结构 `build.xml` 文件遵循XML语法,包含了一系列的目标(targets)和任务(tasks)。每个目标可以包含多个任务,任务...
3. **任务(Tasks)**:Ant的任务是执行具体操作,如`javac`用于编译Java源代码,`copy`用于复制文件,`jar`用于创建JAR包等。 4. **文件集(Filesets)**:文件集允许我们指定一组文件或目录,这些可以在任务中...
3. **任务(Tasks)**:任务是Ant的基本执行单元,比如`javac`任务用于编译Java源码,`copy`任务用于复制文件,`jar`任务用于创建JAR文件等。Ant提供了大量的内置任务,并且可以通过扩展自定义任务。 4. **属性...
每个任务由一系列`<task>`组成,比如`<javac>`用于编译Java源码,`<jar>`用于打包成JAR文件,`<copy>`用于复制文件等。 构建文件的结构通常包括以下部分: - **属性(Properties)**:用于存储和传递值,如版本号、...
- **任务(Tasks)**:Ant提供了一系列内置的任务,如`<javac>`用于编译Java源码,`<copy>`用于复制文件,`<jar>`用于创建JAR文件等。 2. **Ant的任务和任务属性** - **任务**:用于编译Java源代码,可以指定源...
2. `<copy>`:用于复制文件或目录。 3. `<mkdir>`:创建目录。 4. `<delete>`:删除文件或目录。 5. `<jar>`:打包 Java 应用为 JAR 文件。 6. `<war>`:打包 Web 应用为 WAR 文件。 7. `<ear>`:打包企业级应用为 ...
- **copy任务**:用于复制文件或目录,可以进行过滤和重命名操作。 - **jar任务**:创建Java档案(JAR)文件,可以包含manifest文件和类路径。 - **delete任务**:删除文件或目录,常用于清理构建过程产生的临时...
Ant的核心概念是任务(Tasks),这些任务是可执行的动作,如`javac`用于编译Java源代码,`jar`用于打包类文件为JAR文件,`copy`用于复制文件,`delete`用于删除文件或目录等。用户可以通过扩展Ant的任务或者编写...
任务是Ant的基本构建块,比如`javac`任务用于编译Java源代码,`jar`任务用于打包结果,`copy`任务用于复制文件等。目标是一系列任务的集合,可以按顺序执行,一个典型的构建流程可能包含编译、测试、打包和部署等多...
4. **内置任务**:Ant自带了许多内置任务,如`javac`用于编译Java源代码,`jar`用于创建JAR文件,`copy`用于复制文件或目录,`delete`用于删除文件或目录等。 5. **自定义任务**:除了内置任务,开发者还可以编写...
- **copy**:用于复制文件和目录。 - **delete**:用于删除文件和目录。 - **mkdir**:创建目录。 - **tstamp**:为文件添加时间戳。 - **junit**:用于运行JUnit测试。 此外,Ant 还允许通过扩展和插件机制来实现...
2. `copy`任务:用于复制文件或目录,可以重命名文件,或者只复制新文件或修改过的文件。 3. `jar`任务:创建Java的JAR文件,便于部署和分发。 4. `delete`任务:删除文件或目录。 5. `mkdir`任务:创建目录。 6. `...
Ant提供了丰富的任务来处理文件和目录,如`copy`、`move`、`delete`、`mkdir`等,以及`tstamp`用于添加时间戳。 十、JAR和WAR打包 Ant可以方便地创建JAR和WAR包,使用`jar`和`war`任务,配合`manifest`元素可以定制...
Ant 1.9.x版本中包含了丰富的内置任务,如javac用于编译Java源码,jar用于创建JAR文件,copy用于文件复制,以及clean用于清理构建产物等。此外,Ant还允许开发者自定义任务,以适应项目特有的需求。 在Ant的配置...
3. 任务(Tasks):Ant提供了丰富的内置任务,如`javac`用于编译Java源码,`jar`用于创建JAR文件,`copy`用于复制文件等。 四、Ant编写 1. `<project>`元素:这是Ant构建文件的根元素,通常包含项目的基本信息,如...