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。通常,...
14. **Copy**:复制文件或目录。 15. **Copydir-Deprecated**:已废弃的任务,用于复制目录。 16. **Copyfile-Deprecated**:已废弃的任务,用于复制文件。 17. **Cvs**:与 CVS 版本控制系统交互。 18. **...
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)**:文件集允许我们指定一组文件或目录,这些可以在任务中...
Ant的核心概念是任务(Tasks),这些任务是可执行的动作,如`javac`用于编译Java源代码,`jar`用于打包类文件为JAR文件,`copy`用于复制文件,`delete`用于删除文件或目录等。用户可以通过扩展Ant的任务或者编写...
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>`:打包企业级应用为 ...
The .NET antlib in preparation will replace the .NET optional tasks which ship in Ant. Support for the version control system Subversion will be only provided as an antlib to be released shortly. ...
- **copy任务**:用于复制文件或目录,可以进行过滤和重命名操作。 - **jar任务**:创建Java档案(JAR)文件,可以包含manifest文件和类路径。 - **delete任务**:删除文件或目录,常用于清理构建过程产生的临时...
任务是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的配置...