Ant的任务可以分为如下三类:
1) 核心任务:核心任务是Ant自带的任务。
2) 可选任务:可选任务是来自第三方的任务,因此需要一个附加的JAR文件。
3) 用户自定义的任务:用户自定义的任务是用户自己开发的任务。
除此之外,<project…/>元素还可拥有如下两个重要的子元素。
1) <prop[erty…/>:用于定义一个或多个属性。
2) <path…/>:用于定义一个或多个文件和路径。
1. property元素
<property…/>元素用于定义一个或多个属性,Ant生成文件中的属性类似于编程语言中的宏变量,它们都具有名称和值。与编和语言不同的是,Ant生成文件中的属性值不可改变。<property…/>可接收如下几个属性:
1) name:指定需要设置的属性名。
2) value:指定需要设置的属性值。
3) resource:指定属性文件的资源名称,Ant将负责文件中读取属性名和属性值。
4) file:指定属性文件的文件 名,Ant将负责文件中读取属性名和属性值。
5) url: 指定文件的URL地址,Ant将负责从属性文件中读取属性名和属性值。
6) environment:用于指定系统属性环境变量的前缀。通过这种方式允许Ant访问系统环境变量。
7) classpath:指定搜索属性文件的classpath.
8) classpathref:指定搜索属性文件的classpath引用,该属性并不是直接给出classpath值,而是引用<path…/>元素定义文件或路径集。
<!-- 定义三个简单属性 -->
<property name="src" value="src"/>
<property name="classes" value="classes"/>
<property name="dest" value="dest"/>
<!-- 项目web临时路径 -->
<property name="project.web.temp.path" value="${basedir}/WebContent" />
<!-- 项目引用包所在路径 -->
<property name="project.classpath" value="${project.web.temp.path}/WEB-INF/lib" />
2. class元素和classpath元素
使用Ant编译、运行Java文件时常常需要引用 第三方JAR包,这就需要使用<classpath…/>子元素了。<path…/>元素和<classpath…/>元素都用于定义文件和路径集,区别是classpath元素通常作为其他任务的子元素,既可引用已有的文件和路径集,也可临时定义一个文件和路径集;而<path…/>元素作为<project…/>元素的子元素,用于定义一个独立的、有名称的文件和路径集,用于被引用。
<path…/>和<classpath…/>元素都用于收集系列的文件和路径集,这两个元素都可接受如下的子元素。
1) <pathelement…/>:用于指定一个或多个目录。
2) <dirset…/>:采用模式字符串的方式指定系列文件。
3) <fileset…/>:采用模式字符串的方式指定系列文件。
4) <filelist…/>:采用直接列出系列文件名的方式指定系列文件。
5) <pathelement…/>:用于指定一个或多个目录。pathelement元素可以指定如下两个属性中的其中一个。
a) <path…/>:指定一个或者多个目录(或者JAR文件),多个目录或JAR文件之间以英文冒号(:)或英文分号(;)分开。
<location…/>:指定一个目录和JAR文件。<!-- 定义一组文件和目录集 -->
<path id="classpath">
<pathelement path="${classes}"/>
<!--指定Jar包-->
<pathelement path="${project.classpath}/mysql-connector-java-5.1.30-bin.jar"/>
<fileset dir="${project.classpath}">
<include name="**/*.jar"/>
</fileset>
</path>
3. Ant的任务(task)
Ant提供了大量的核心task和可选task,除此之外,Ant还允许用户定义自己task,这大大扩展了Ant的功能。下面笔者向大家介绍一些常用的核心task。
1) javac:用于编译一个或多个Java源文件,通常需要srcdir和destdirg两个属性,用于指定Java源文件的位置和编译后class文件的保存位置。
2) java:用于运行某个Java类,通常需要classname属性,用于指定需要运行哪个类。
3) jar:用于生成JAR包,通常需要指定destfile属性,用于指定所创建JAR包的文件名。除此之外,通常还应指定一个文件集,表明需要将哪些文件打包到JAR包里。
4) sql:用于执行一条或多条SQL语句,通常需要driver、url、userid和password等属性,用于指定连接数据库的驱动类、数据库URL、用户名和密码等,还可以通过src来指定所需要的SQL脚本文件,或者直接使用文本内容的方式指定SQL脚本字符串。
5) echo:输出某个字符串。
6) exec:执行操作系统的特定命令,通常需要executable属性,用于指定想执行的命令。
7) copy:用于复制文件或路径。
8) delete:用于删除文件或路径。
9) mkdir:用于创建文件夹。
10) move:用户移动文件或路径。