`
流浪鱼
  • 浏览: 1682948 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ant的任务

    博客分类:
  • ant
 
阅读更多

在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 任务说明.rar

    Coverity 8.7.1 命令与 Ant 任务说明书 包括Coverity Analysis、Coverity Platform 和 Coverity Desktop 说明 如果你想对cov-analyze,cov-build,cov-run-desktop 等等有关coverity命令用法有更多了解的话,可以...

    [北京圣思园Ant深入详解]_004.实现自定义Ant任务

    通过自定义Ant任务,你可以实现各种复杂的功能,如自动化测试、代码分析、系统集成等,使得Ant能够更好地适应你的项目需求。记住,良好的Ant脚本组织和清晰的任务定义有助于提高项目维护性和可扩展性。在实际开发...

    支持中文的 YUI Compressor Ant 任务驱动 - Shane版

    如果用 Ant 执行 YUI Compressor 任务时出现了中文乱码,请下载此资源,用这里边 dist 目录里边的 YUIAnt-zh_CN.jar 替换掉官方提供的 YUIAnt.jar ,然后在对应的 Ant 任务中,用 encoding="xxx" 指定源文件的字符...

    Appfuse的Ant任务列表

    Appfuse的Ant任务列表是开发者进行日常开发、构建和部署的重要参考文档,下面将详细介绍其中的一些关键任务: 1. **clean**:此任务负责清理项目生成的临时文件和目标目录,如编译后的class文件、测试结果、打包...

    HibernateCore的代码生成、逆向工程、ant任务和更多工具___下载.zip

    总之,Hibernate Core 的代码生成、逆向工程、Ant任务以及其他工具是Java开发中高效管理数据库与对象之间映射的强大武器。熟练掌握这些工具,能够显著提高开发效率,同时保证代码质量。通过不断学习和实践,开发者...

    支持中文的 YUI Compressor Ant 任务

    YUI Compressor 任务时出现了中文乱码,请下载此资源,用这里边 dist 目录里边的 YUIAnt-zh_CN.jar 替换掉官方提供的 YUIAnt.jar ,然后在对应的 Ant 任务中,用 encoding="xxx" 指定源文件的字符编码集即可。

    Ant资料大全

    - `&lt;macrodef&gt;`元素允许创建自定义的Ant任务,便于重用和抽象复杂的构建逻辑。 - Ant还可以通过扩展机制加载自定义的任务类,实现更复杂的功能。 7. **Ant与版本控制系统的集成** - Ant可以轻松地与Git、SVN等...

    Ant自定义任务

    自定义Ant任务通常通过实现`org.apache.tools.ant.Task`接口或者继承`org.apache.tools.ant.TaskAdapter`类来完成。首先,我们需要创建一个Java类,然后在这个类中实现`execute()`方法,这个方法将在Ant运行时被调用...

    [北京圣思园Ant深入详解]_003.Ant目标深度详解、使用Ant的各种任务

    一些常见的Ant任务包括`&lt;copy&gt;`(复制文件或目录)、`&lt;javac&gt;`(编译Java源代码)、`&lt;mkdir&gt;`(创建目录)和`&lt;jar&gt;`(创建JAR文件)等。 让我们以`&lt;javac&gt;`任务为例,它是用于编译Java源代码的关键任务。你可以配置...

    ant自定义任务

    5. **使用自定义任务**:一旦自定义任务被正确注册,就可以在`&lt;target&gt;`元素中像使用其他Ant任务一样调用它,通过设置必要的属性来传递参数。 #### 三、示例解析 以题目中提供的示例——自定义一个文件排序任务为...

    checkstyle,checkstyle是一个开发工具,可以帮助程序员编写遵循编码标准的java代码。默认情况下,它支持google java风格指南和sun代码约定,但高度可配置。它可以通过ant任务和命令行程序调用。.zip

    成员聊天:checkstyle,checkstyle是一个开发工具,可以帮助程序员编写遵循编码标准的java代码。默认情况下,它支持google java风格指南和sun代码约定,但高度可配置。它可以通过ant任务和命令行程序调用。.zip

    ant脚本资料ant

    - **第三方插件**:许多第三方库提供了Ant任务,如Maven的Ant Tasks,方便在Ant中调用Maven的功能。 6. **实际应用案例** - **持续集成**:Ant常与CruiseControl、Jenkins等持续集成工具结合,自动执行构建和测试...

    Using ANT in Eclipse

    - **Eclipse挂起问题**: 如果Eclipse在执行ANT任务时卡住或挂起,检查你的ANT构建脚本是否有无限循环或资源消耗过大的操作。你可能需要优化脚本,或者增加Eclipse的工作区内存设置(通过eclipse.ini文件)。 **5. ...

    ant.jar,ant-junit.jar,ant-launcher.jar,ant-trax.jar

    这个库是使用Ant进行项目构建的基础,几乎所有的Ant任务都依赖于它。 2. ant-junit.jar:此文件扩展了Ant的功能,使其能够集成和运行JUnit测试。JUnit是Java编程语言中的一款流行的单元测试框架。通过ant-junit.jar...

    ant-jstestrunner:Ant 任务来自动化 JS 单元测试

    #JSTestRunner Ant 任务使用 Apache Ant 自动化 Javascript 单元测试。 该任务使用 (一种无头 Webkit 浏览器)来打开和运行 html 单元测试文件。 任何测试失败都会(可选)导致构建失败。 注意:目前支持仅限于 。...

    maven-ant-tasks:Apache Maven ant任务的镜像

    "Maven-ant-tasks"是一个Java库,提供了Ant任务,这些任务可以与Maven交互,如执行Maven目标、解析POM(Project Object Model)文件、处理依赖关系等。这使得开发者能够在Ant构建脚本中使用Maven的特性,如自动下载...

    ant1.8全部jar包

    通过这个JAR,开发者可以调用各种Ant任务来完成项目构建。 2. `ant-junit.jar`: 这个JAR提供了对JUnit测试框架的支持。在Ant中集成JUnit测试,可以方便地执行单元测试并获取测试结果。通过`junit`任务,用户可以在...

    ant

    8. **Ant插件和Maven集成**:虽然Ant本身功能强大,但在现代开发环境中,常常与Maven等更现代化的构建工具结合使用,通过Maven的Ant Tasks来调用Ant任务,实现更丰富的构建流程。 9. **持续集成**:Ant也常被用于...

Global site tag (gtag.js) - Google Analytics