原文地址:
http://blog.csdn.net/buptdavid/article/details/4854981
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任务。
4.6 Delete Task:对文件和目录进行删除
Delete 任务可用于删除一个或多个文件,或删除一个或多个目录和目录下的文件。默认时不会删除空目录,要删除空目录可以设定includeEmptyDirs属性为true。在Delete任务中可以使用FileSet和DirSet类型。
4.6.1 Delete Task的属性及功能
Delete任务包括以下属性:
(1)file:用于指定要删除的文件的名称,可以为相对路径或绝对路径。
(2)dir:指定一个将要被删除的根目录。这个目录下的子目录及文件将可能被删除。dir属性和file属性两者必须指定其一。
(3)verbose:作用是指定是否在命令行中输出被删除的文件的名称。默认为false。
(4)quiet:作用是指定当要被删除的文件或目录不存在时是否不显示提示信息。默认为false,代表要显示提示信息。
(5)failonerror:用于指定当出现错误时是否停止执行命令。
(6)includeemptydirs:表明当使用FileSet类型时是否删除空的目录。
(7)includes:用于指定将要删除的文件或目录的模式。可用逗号或空格符进行分隔。
(8)includesfile:用于指定要删除的文件的模式。已不建议使用。
(9)excludes:用于指定一个或多个文件模式或目录模式。这些符合条件的文件和目录将不被删除。
(10)excludesfile:用于指定将不被删除的文件模式,已不建议使用。
(11)defaultexcludes:用于指定是否使用Ant默认的default excludes模式,已不建议使用。
(12)deleteonexit:用于指定是否采用Java File类中的deleteOnExit()方法进行判断,如果使用这个方法,那么仅当存在文件时才进行删除,默认取值为false。
4.6.2 在执行Delete Task时使用文件过滤的实例
(1)删除单个文件的实例:
<delete file="/lib/ant.jar"/>
这个例子的作用是删除lib目录下的ant.jar文件。
(2)删除目录的实例:
<delete dir="lib"/>
这个例子的作用是删除lib目录,包括这个目录的所有子目录及文件,可以通过include或exclude类型指定删除的部分文件,而不是目录下的所有文件。
(3)删除所有备份文件和空的目录的例子:
<delete includeEmptyDirs="true"> <fileset dir="." includes="**/*.bak"/> </delete>
这个例子的作用是删除当前目录以及其子目录下的所有.bak文件,同时也删除所有空的目录。
aaa
相关推荐
1. **项目(Project)**:这是Ant文件的顶级元素,它定义了项目的属性,包括项目名称、版本以及默认目标。 2. **属性(Properties)**:Ant允许定义和使用属性,这些属性可以在整个构建过程中被引用,用于存储配置...
ANT的主要理念是“一切都是文件”,这意味着它可以处理任何类型的文件操作,如复制、删除、解压缩等。 二、ANT的基本结构 ANT的核心部分是构建文件(Build File),通常命名为`build.xml`。这个文件包含了一系列的...
此外,Ant还有许多内置任务,如`<copy>`用于复制文件和目录,`<jar>`用于创建JAR文件,`<delete>`用于删除文件和目录,以及`<mkdir>`用于创建目录。这些任务都有各自的属性和子元素,可以根据需要进行配置。 尽管本...
这个"apache-ant-1.7.0.rar"是Apache Ant 1.7.0版本的安装文件,大小刚好小于10MB,适合在各种环境中快速下载和安装。 Ant 的核心概念是构建文件(build.xml),这是一个XML文档,包含了项目构建的所有步骤和指令。...
Ant的核心概念是任务(Tasks),这些任务是可执行的动作,如`javac`用于编译Java源代码,`jar`用于打包类文件为JAR文件,`copy`用于复制文件,`delete`用于删除文件或目录等。用户可以通过扩展Ant的任务或者编写...
Ant是基于XML的,它的核心在于`build.xml`文件,这个文件是项目的构建脚本,详细定义了构建过程中的各种任务和依赖关系。 标题“一个常用的ant的build.xml”暗示了我们讨论的是一个标准且常见的Ant构建配置文件。...
3. **任务(Tasks)**:熟悉各种内置任务,如`javac`用于编译Java源代码,`jar`用于创建JAR文件,`copy`用于复制文件,`delete`用于删除文件或目录,以及`mkdir`用于创建目录等。 4. **依赖关系(Dependencies)**...
标题中的“Ant构建文件”指的是Apache Ant,一个Java平台上的开源构建工具。它被广泛用于自动化Java项目的构建、编译、测试和部署过程。Ant基于XML,开发者可以通过编写XML配置文件来定义构建任务,这些任务可以是...
Ant是Apache软件基金会开发的一款Java项目构建工具,...通过阅读“ant使用手册(中文教程)”,无论是初学者还是有经验的开发者,都能深入理解Ant的工作原理和使用技巧,从而更好地在Java项目中运用Ant进行自动化构建。
- 文件集是Ant处理文件和目录的一种方式,可以指定一组文件,然后在多个任务中重用。 5. **宏定义(Macrodefs)** - 宏定义允许创建自定义的任务,方便复用和抽象复杂的构建逻辑。 6. **依赖关系(Dependencies...
- **路径元素(Path Element)**:Ant中的`<path>`元素用于定义类路径或文件路径,可以包含多个目录和文件。 3. **Ant常用任务** - **javac任务**:用于编译Java源代码,可以设置源和目标兼容性级别,以及处理...
在IT行业的软件开发领域,构建工具扮演着至关重要的角色,其中Apache Ant因其灵活性和强大的功能,在Java项目构建中被广泛采用。本文将深入探讨在Ant发布项目中的`build.xml`文件配置,帮助开发者理解并掌握如何通过...
- 部署:将JAR文件和其他相关文件复制到指定的服务器或目录。 7. **Ant与Maven对比**: 虽然Ant在Java项目中历史悠久,但随着Maven的出现,许多项目开始转向Maven。Maven同样使用XML配置,但它提供了一套标准的...
通过这些数据类型,Ant能够方便地对文件和目录进行操作。 Ant构建项目的基本流程包括编译Java源代码、打包成JAR文件、生成WAR文件以及将应用打包等。Ant提供了专门的任务来处理这些操作,如任务用于编译代码,任务...
除了这些基础任务,Ant还能进行Java工程的构建和部署。例如: - 使用`javac`任务编译Java源代码。 - 使用`java`任务运行已编译的Java类。 - 使用`jar`任务创建Java类库JAR文件。 - 使用`war`任务打包Java EE项目为...
1. **任务(Task)**:Ant的工作单元,执行特定的动作,比如`javac`用于编译Java源代码,`copy`用于复制文件,`mkdir`用于创建目录等。 2. **属性(Properties)**:存储配置信息,可以在构建文件中定义并被其他任务...
2. `<copy>`:用于复制文件或目录。 3. `<mkdir>`:创建目录。 4. `<delete>`:删除文件或目录。 5. `<jar>`:打包 Java 应用为 JAR 文件。 6. `<war>`:打包 Web 应用为 WAR 文件。 7. `<ear>`:打包企业级应用为 ...
4. **内置任务**:Ant自带了许多内置任务,如`javac`用于编译Java源代码,`jar`用于创建JAR文件,`copy`用于复制文件或目录,`delete`用于删除文件或目录等。 5. **自定义任务**:除了内置任务,开发者还可以编写...
这些任务可以是简单的文件操作,如复制或删除,也可以是复杂的编译、测试和打包过程。Ant提供了许多内建的任务,但有时候这些内建任务无法满足特定项目的需求,这时JavaScript脚本就派上了用场。 在Ant中,我们可以...