其实Ant的核心就是build.xm。如何编写适合自己工程的build.xml是最重要的。


build.properties


tomcat.home=F://Java//Tomcat 5.5
webapps.home=F://Java//Tomcat 5.5//webapps


build.properties文件是存储一些公共变量的,比如你机子上tomcat的绝对路径。

其实也用到了面向对象的原理,如果你的环境变了,只需要更改build.properties文件就可以了。而不用去更改build.xm里的相关属性。build.properties也可以加上你想加的东西,比如公共的jar文件。。


2.build.xml


2.1 build.xml的project


project代表一个工程,有4个常见属性:


(1). default 表示默认的运行目标,是必须的


(2). basedir 表示工程的基准目录,"."表示和build.xml所在的目录。


(3). name 表示工程的名字


(4).description 对工程的描述,可写可不写,写上更清楚对以后的debug


下面是build.xml所存放的位置:


buildTypes配置打包签名 build.xml详解_ant


这就是basedir="."的原因了


2.2 project 的property


    每个property都有name和value两个属性,name是对该property的声明,而value就是值了!也是为了后边方便而设置的。


2.3 build.xml的target


每个build.xml只有个project,但是可以有多个target(目标).


target 有5个属性:


(1) name 自然是标识了,代表一个特定的target


(2) depends 表示所依赖的target。即执行该target时,必须先执行


depends 后边跟那个target。


比如:


< target name ="compile" depends ="prepare" >
         < javac srcdir ="${src.home}" destdir ="${classes.home}" debug ="yes" >
             < classpath refid = "compile.classpath" />
         </ javac >
     </ target >


在执行compile之时,必须先执行prepare。

(3) if 表示仅当属性设置时才执行


(4)unless 表示当属性没有设置时才执行


< target name ="myTarget" depends ="myTarget.check" if ="myTarget.run" >
         < echo >Files foo.txt and bar.txt are present. </ echo >
</ target >

< target name ="myTarget.check" >
         < condition property ="myTarget.run" >
                 < and >
                         < available file ="foo.txt" />
                         < available file ="bar.txt" />
                 </ and >
         </ condition >
</ target>



Note: If no if an dno unless attribute si prresent, the target will always



be executed.


(5) Description 对target的描述


介绍完target,大家就会对build.xml有了一个更清楚的认识,更深地清楚了build.xml的框架


下面就介绍每个target中可以用那些命令,ant就是依靠这些命令去完成project 构建的。


ant内置任务常用的有7个


1.mkdir----创建目录


2.copy----copy文件


3.delete---delete文件


4.javac----编译java文件


5.war-----打包发布


6.javadoc---javadoc文件


7.move---移动文件


ant还有其他内置的任务,不如zip等等,但是不常用就不介绍了


今天简单介绍一下这7个任务的运用。


1.mkdir---make a new directory


Creates a directory. Also non-existent parent directories are created, when necessary. Does nothing if the directory already exist.


创建一个目录,如果该目录存在,则设么也不做。


Attribute

Description

Required

dir

the directory to create.

Yes

Example:


<mkdir dir="${dist}"/>



creates a directory  ${dist}.


<mkdir dir="${dist}/lib"/>



creates a directory  ${dist}/lib.


2.copy--copy文件


Description:copies a file or resource collection to a new file or directory


. By default, files are only copied if the source file is newer than the destinatio


file,or when the destination file does not exist. However, you can explicityly


overwrite files with the overwrite attribute.


copy文件从指定的目录或者文件到目的目录。如果文件没有更新,则不会发生copy。


如果想覆盖,可以通过设置属性才达到覆盖。


Atribution:


(1) file 要copy的文件


(2) preservelastmodified 给出所要copy文件最近修改的时间


默认是false,不常用


(3) tofile copy的文件


(4) todir copy 到那里


(5) overwrite 是否覆盖已经原有的文件加入该文件没有更新,就是和所copy的文件一模一样


default 是false,即不overwrite


(6) filtering 过滤文件


还有几个属性,不常用


转自:http://lemonmilk.blog.51cto.com/499577/156281