在Ant工具中每一个任务封装了具体要执行的功能,是Ant工具的基本执行单位。
核心任务
核心任务是Ant自带的任务。
可选任务。
可选任务实来自第三方的任务,因此需要一个附加的JAR文件。
用户自定义的任务
用户自定义的任务实用户自己开发的任务。
一个可选task一般需要额外的库才能工作。这些外部库可以放到Ant的lib目录下,这样Ant就能自动装入,或者将其放入环境变量中
echo任务
该任务的作用是根据日志或监控器的级别输出信息。它包括message、file、append和level四个属性,:
ant一共有五种log级别
0 error
1 warning
2 info
3 verbose
4 debug
可以使用
ant -debug 3指定输出日志的级别
<echo message="Hello,流浪鱼" file="${basedir}logs/system.log" level="debug" append="true"/>
mkdir任务
创建目录
<?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="mkdir" name="testMkdir"> <!--定义路径--> <property name="build.dest" value="${basedir}/build_ant/dest" /> <target name="mkdir"> <description>测试mkdir任务</description> <mkdir dir="${build.dest}"/> <mkdir dir="test/test2"/> </target> </project>
copy任务
该任务主要用来对文件和目录的复制功能属性如下:
file 表示源文件。也可以用嵌套的<fileset>。
tofile 表示目标文件。
todir 表示目标目录。
overwrite 表示指定是否覆盖目标文件,默认值是不覆盖。
includeEmptyDirs 表示制定是否拷贝空目录,默认值为拷贝。
failonerror 表示指定如目标没有发现是否自动停止,默认值是停止。
verbose 表示制定是否显示详细信息,默认值不显示。
分为:单文件复制、单文件复制到目录、目录全部复制到目录、目录满足条件复制到目录
<?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="dirTodir2" name="testCopy"> <!--定义路径--> <property name="src.dir" value="${basedir}/srcdir" /> <property name="to.dir" value="${basedir}/todir" /> <property name="to.dir2" value="${basedir}/todir2" /> <property name="srcfilename" value="${basedir}/src.txt" /> <property name="tofilename" value="${basedir}/copyto.txt" /> <target name="init"> <!--删除生成文件夹--> <delete dir="${to.dir}"/> <delete dir="${to.dir2}"/> <mkdir dir="${to.dir}" /> <mkdir dir="${to.dir2}" /> </target> <target name="fileTofile" depends="init"> <description>单个文件复制到另一个文件</description> <copy file="${srcfilename}" tofile="${tofilename}" overwrite="true"/> </target> <target name="fileTodir" depends="init"> <description>单个文件复制到某个目录</description> <copy file="${srcfilename}" todir="${to.dir}" overwrite="true"/> </target> <target name="dirTodir" depends="init"> <description>某个目录复制到某个目录</description> <copy todir="${to.dir}" overwrite="true"> <fileset dir="${src.dir}" /> </copy> </target> <target name="dirTodir2" depends="init"> <description>某个目录复制到某个目录包含或排除某些文件</description> <copy todir="${to.dir2}" overwrite="true"> <fileset dir="${src.dir}"> <include name="*.xml" /> <include name="**/*.log" /> <exclude name="*.bak" /> <exclude name="**/*.bak" /> </fileset> </copy> </target> </project>
delete任务
对文件或目录进行删除属性如下:
file表示要删除的文件。
dir表示要删除的目录。
includeEmptyDirs 表示指定是否要删除空目录,默认值是删除。
failonerror 表示指定当碰到错误是否停止,默认值是自动停止。
verbose表示指定是否列出所删除的文件,默认值为不列出
<?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="dirTodir2" name="testDelete"> <!--定义路径--> <property name="del.dir" value="${basedir}/deldir" /> <property name="delfilename" value="${basedir}/del.txt" /> <target name="delfile"> <description>删除单个文件</description> <delete file="${delfilename}"/> </target> <target name="deldir"> <description>删除某个目录</description> <delete dir="${del.dir}" includeEmptyDirs="true"/> </target> <target name="deldir2"> <description>删除满足条件和空目录</description> <delete includeemptydirs="true"> <fileset dir="${del.dir}"> <include name="*.bak"/> <include name="**/*.bak"/> </fileset> </delete> </target> </project>
经过测试 includeEmptyDirs并不好用
move任务
移动文件或目录
<?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="dirTodir2" name="testMove"> <!--定义路径--> <property name="src.dir" value="${basedir}/srcdir" /> <property name="to.dir" value="${basedir}/todir" /> <property name="srcfilename" value="${basedir}/src.txt" /> <property name="tofilename" value="${basedir}/move.txt" /> <target name="init"> <delete dir="${to.dir}" /> <mkdir dir="${to.dir}" /> </target> <target name="movefile" > <description>移动单个文件</description> <move file="${srcfilename}" tofile="${tofilename}" /> </target> <target name="movefileTodir" depends="init"> <description>移动单个文件到目录</description> <move file="${srcfilename}" todir="${to.dir}"/> </target> <target name="movedirTodir" depends="init"> <description>移动某个目录到某个目录</description> <move todir="${to.dir}"> <fileset dir="${src.dir}" /> </move> </target> <target name="movedirTodir2" depends="init"> <description>移动满足条件的目录</description> <move todir="${to.dir}"> <fileset dir="${src.dir}"> <exclude name="*.bak"/> <exclude name="**/*.bak"/> </fileset> </move> </target> </project>
dependset任务
将一个或多个输入文件与一个或多个输出文件加以比较。如果某些输入文件添加一些,则所有输出文件都删除,如果缺少某些输入文件,所有的输出文件也将被删除
更详细的内容请查阅下载下来的ant文件夹下apache-ant-1.9.0\manual\Tasks里面文件,对每个任务做了具体的讲解
其中ant.rar是自己测试上面任务时做的例子,希望对大家有用
更多的ant支持的任务请查看下载下来的apache-ant-1.9.0\manual\Tasks文件夹里面的内容,有非常详细的简绍,我也把manual上传了,可以进行直接下载
相关推荐
Coverity 8.7.1 命令与 Ant 任务说明书 包括Coverity Analysis、Coverity Platform 和 Coverity Desktop 说明 如果你想对cov-analyze,cov-build,cov-run-desktop 等等有关coverity命令用法有更多了解的话,可以...
通过自定义Ant任务,你可以实现各种复杂的功能,如自动化测试、代码分析、系统集成等,使得Ant能够更好地适应你的项目需求。记住,良好的Ant脚本组织和清晰的任务定义有助于提高项目维护性和可扩展性。在实际开发...
如果用 Ant 执行 YUI Compressor 任务时出现了中文乱码,请下载此资源,用这里边 dist 目录里边的 YUIAnt-zh_CN.jar 替换掉官方提供的 YUIAnt.jar ,然后在对应的 Ant 任务中,用 encoding="xxx" 指定源文件的字符...
Appfuse的Ant任务列表是开发者进行日常开发、构建和部署的重要参考文档,下面将详细介绍其中的一些关键任务: 1. **clean**:此任务负责清理项目生成的临时文件和目标目录,如编译后的class文件、测试结果、打包...
总之,Hibernate Core 的代码生成、逆向工程、Ant任务以及其他工具是Java开发中高效管理数据库与对象之间映射的强大武器。熟练掌握这些工具,能够显著提高开发效率,同时保证代码质量。通过不断学习和实践,开发者...
YUI Compressor 任务时出现了中文乱码,请下载此资源,用这里边 dist 目录里边的 YUIAnt-zh_CN.jar 替换掉官方提供的 YUIAnt.jar ,然后在对应的 Ant 任务中,用 encoding="xxx" 指定源文件的字符编码集即可。
- `<macrodef>`元素允许创建自定义的Ant任务,便于重用和抽象复杂的构建逻辑。 - Ant还可以通过扩展机制加载自定义的任务类,实现更复杂的功能。 7. **Ant与版本控制系统的集成** - Ant可以轻松地与Git、SVN等...
自定义Ant任务通常通过实现`org.apache.tools.ant.Task`接口或者继承`org.apache.tools.ant.TaskAdapter`类来完成。首先,我们需要创建一个Java类,然后在这个类中实现`execute()`方法,这个方法将在Ant运行时被调用...
一些常见的Ant任务包括`<copy>`(复制文件或目录)、`<javac>`(编译Java源代码)、`<mkdir>`(创建目录)和`<jar>`(创建JAR文件)等。 让我们以`<javac>`任务为例,它是用于编译Java源代码的关键任务。你可以配置...
5. **使用自定义任务**:一旦自定义任务被正确注册,就可以在`<target>`元素中像使用其他Ant任务一样调用它,通过设置必要的属性来传递参数。 #### 三、示例解析 以题目中提供的示例——自定义一个文件排序任务为...
成员聊天:checkstyle,checkstyle是一个开发工具,可以帮助程序员编写遵循编码标准的java代码。默认情况下,它支持google java风格指南和sun代码约定,但高度可配置。它可以通过ant任务和命令行程序调用。.zip
- **第三方插件**:许多第三方库提供了Ant任务,如Maven的Ant Tasks,方便在Ant中调用Maven的功能。 6. **实际应用案例** - **持续集成**:Ant常与CruiseControl、Jenkins等持续集成工具结合,自动执行构建和测试...
- **Eclipse挂起问题**: 如果Eclipse在执行ANT任务时卡住或挂起,检查你的ANT构建脚本是否有无限循环或资源消耗过大的操作。你可能需要优化脚本,或者增加Eclipse的工作区内存设置(通过eclipse.ini文件)。 **5. ...
这个库是使用Ant进行项目构建的基础,几乎所有的Ant任务都依赖于它。 2. ant-junit.jar:此文件扩展了Ant的功能,使其能够集成和运行JUnit测试。JUnit是Java编程语言中的一款流行的单元测试框架。通过ant-junit.jar...
#JSTestRunner Ant 任务使用 Apache Ant 自动化 Javascript 单元测试。 该任务使用 (一种无头 Webkit 浏览器)来打开和运行 html 单元测试文件。 任何测试失败都会(可选)导致构建失败。 注意:目前支持仅限于 。...
"Maven-ant-tasks"是一个Java库,提供了Ant任务,这些任务可以与Maven交互,如执行Maven目标、解析POM(Project Object Model)文件、处理依赖关系等。这使得开发者能够在Ant构建脚本中使用Maven的特性,如自动下载...
通过这个JAR,开发者可以调用各种Ant任务来完成项目构建。 2. `ant-junit.jar`: 这个JAR提供了对JUnit测试框架的支持。在Ant中集成JUnit测试,可以方便地执行单元测试并获取测试结果。通过`junit`任务,用户可以在...
8. **Ant插件和Maven集成**:虽然Ant本身功能强大,但在现代开发环境中,常常与Maven等更现代化的构建工具结合使用,通过Maven的Ant Tasks来调用Ant任务,实现更丰富的构建流程。 9. **持续集成**:Ant也常被用于...