ant的构建文件

一. ant 的构建文件:

1. 目录结构:

    antBook

    antBook/src

    antBook/build

    antBook/build/classese

    antBook/build/lib

 

1.  antBook/build.xml

Xml代码


1. <?xml version="1.0" encoding="utf-8"?>  
2.   
3.     <project name="simple Buildfile" default="compile" basedir=".">  
4.        
5.         <!-- The directory containing source code-->  
6.         <property name="src.dir" value="src"/>  
7.            
8.         <!-- Temporary build directories -->  
9.         <property name="build.dir" value="build"/>  
10.         <property name="build.classes" value="${build.dir}/classes"/>  
11.         <property name="build.lib" value="${build.dir}/lib"/>  
12.            
13.         <!--compile target-->  
14.         <target name="prepare">  
15.             <mkdir dir="${build.dir}"/>  
16.             <mkdir dir="${build.classes}"/>  
17.             <mkdir dir="${build.lib}"/>  
18.         </target>  
19.        
20.         <target name="clean" description="removes all generated files.">  
21.             <delete dir="${build.dir}"/>  
22.         </target>  
23.            
24.         <target name="compile" depends="prepare" description="编译文件">  
25.             <javac srcdir="${src.dir}" destdir="${build.classes}"/>  
26.         </target>  
27.            
28.         <target name="jar" depends="compile" description="压缩成jar">  
29.             <jar jarfile="${build.lib}/oreilly.jar" basedir="${build.classes}"
30. excludes="**/*Test.class"/>  
31.         </target>  
32.            
33.         <target name="all" depends="clean,jar" description="cleans,compiles.."/>  
34.     </project>


 

2. ant运行时会显示每个所执行到的目标的名字,ant 先执行了prepare,其后才执行compile,这是因为compile是默认目标,而它对prepare目标存在一个依赖关系。

 

3. ant运行指定的构建文件时,命令如下:

ant  -buildfile  *.xml     
    ant  -buildfile  *.xml clean

 

4. 可以运行一条命令执行多个目标:

    ant clean jar

 

5.可以输入ant all 来完成清理和重新构建, 因为all依赖于clean和 jar. 而jar进一步依赖compile,compile则依赖于prepare, 这样一条简单的命令ant all 既可以按适当的顺序完成所以目标。

 

6. 获得描述信息:

   包含description属性的为主目标,没有描述的则为子目标。

从工程的基目录键入: ant -projecthelp 可获得如下输出信息:

 

Main targets:

 all      cleans,compiles..
 clean    removes all generated files.
 compile  编译文件
 jar      压缩成jar"
Default target: compile

 

7. 获得ant 命令行参数:  键入ant -help

 

-help: 

    显示描述ant 命令及其选项的帮助信息。

 

-projecthelp:

     显示description属性中的文本信息

 

-version : 显示ant版本信息

 

-quiet :

   抑制并非由构建文件中的echo任务所产生的大多数消息。

 

-verbose:

   显示构建过程中每个操作的详细信息,此选项与-debug只能选择其一。

 

-debug

   显示ANT和任务开发人员已经标志为调式消息的消息,此选项与-verbose只能选其一。

 

-emacs

   对日志消息进行格式化,使他们能够很容易的由emacs的shell模式所解析; 也就是说,打印任务事件,但并不缩排,在期之前也没有[taskname].

 

-logger classname

   指定一个类来处理ANT 的日志记录,所指定的类必须实现了org.apache.tools.ant.BuildLogger接口。

 

-listener classname

    为ANT 声明一个监听类,并增加到其监听者列表中,在ANT与IDE或者其他JAVA程序集成时,此选项非常有用。

必须将所指定的监听类编写为可以处理ANT的构建消息接发。

 

-buildfile filename

   指定ant需要处理的文件, 默认的构建文件为build.xml

 

-Dproperty=value

    在命令行上定义一个特殊名-值对。

 

-find filename

   指定ant应当处理的构建文件。 与-buildfile选项不同,如果所指定文件在当前目录中未找到,-file就要求ant在其父目录中再进行搜索,这种搜索会继续在其祖目录中进行,直到到达文件系统根目录为止, 在此如果文件还未找到则构建失败。

 

 

8. 构建文件的几点事项:

 

(1. 所有构建文件都要有<project >元素, 而且至少有一个<target>元素。

 

(2. 对于<project >元素的default属性并没有默认值。

 

(3. 构建文件并不一定要命名为build.xml,ant默认搜索该文件。

 

(4. 每个构建文件只有一个<project >元素。