Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。build.xml就是Ant构建文件,它的格式是XML。

1. 每个构建文件build.xml对应一个项目project

2. 构建文件之间的target可以有依赖关系

  • build.xml结构简介

    • 父节点Project标签

(1) default表示默认的运行目标,这个属性是必须的。 
(2) basedir表示项目的基准目录。 
(3) name表示项目名。 
(4) description表示项目的描述。

target标签(在执行之前,首先需要执行它所依赖的target。)

(1).name表示标明,这个属性是必须的。 
(2).depends表示依赖的目标。 
(3)if表示仅当属性设置时才执行。 
(4)unless表示当属性没有设置时才执行。 
(5)description表示项目的描述

javac标签(该标签用于编译一个或一组java文件)

(1).srcdir表示源程序的目录。 
(2).destdir表示class文件的输出目录。 
(3).include表示被编译的文件的模式。 
(4).excludes表示被排除的文件的模式。 
(5).classpath表示所使用的类路径。 
(6).debug表示包含的调试信息。 
(7).optimize表示是否使用优化。 
(8).verbose 表示提供详细的输出信息。 
(9).fileonerror表示当碰到错误就自动停止。


java标签(用来执行编译生成的.class文件)

(1).classname 表示将执行的类名。 
(2).jar表示包含该类的JAR文件名。 
(3).classpath所表示用到的类路径。 
(4).fork表示在一个新的虚拟机中运行该类。 
(5).failonerror表示当出现错误时自动停止。 
(6).output 表示输出文件。 
(7).append表示追加或者覆盖默认文件。

java标签中可添加的元素
  • sysproperty in build.xml

  • <sysproperty key=caseCount value=${caseCount}><====> ant -DcaseCount=100 <======> System.getProperty("caseCount") in JAVA


<?xml version="1.0" encoding="UTF-8" ?>
    <project name="HelloWorld" default="run" basedir=".">
    <property name="src" value="src" />
    <property name="classes" value="classes"/>
    <target name="init" >
        <mkdir dir="${classes}"/>
    </target>
    <target name="compile" depends="init">
        <echo>compiling java files </echo>
        <javac srcdir="${src}" destdir="${classes}" encoding="UTF-8" />
    </target>
    <target name="run" depends="compile">
        <java classname="helloWorld" classpath="${classes}" />
    </target>
</project>