Ant有一个配置文件build.xml,所有的命令编写都放在这个xml文件中进行

一个build.xml文件的内容如下:

<project name="my-project" default="dist" basedir=".">

     <description>

         simple example build file

     </description>

   <!-- set global properties for this build -->

   <property name="src" location="src/main/java"/>

   <property name="build" location="target/classes"/>

   <property name="dist"  location="target"/>

   <property name="webApp" value="E:\apache-tomcat-5.5.26\webapps\ant-project"/>  

 

   <target name="init">

     <!-- Create the time stamp -->

     <tstamp/>

     <!-- Create the build directory structure used by compile -->

     <mkdir dir="org.apache.maven.model.Build@d7e661"/>

   </target>

 

   <target name="compile" depends="init"

         description="compile the source " >

         <javac srcdir="${src}" destdir="org.apache.maven.model.Build@d7e661"/>

   </target>

 

   <target name="dist" depends="compile"

         description="generate the distribution" >

     <!-- Create the distribution directory -->

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

     <copy todir="${webApp}" overwrite="true">  

         <fileset dir="${basedir}/WebRoot" excludes="**/*.class"/>  

     </copy>  

     <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir= “org.aaxx.xxfd.xxx”

   </target>

 

   <target name="clean"

         description="clean up" >

     <delete dir="org.apache.maven.model.Build@d7e661"/>

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

   </target>

 </project>

 

在这个简单的 Ant 例子中,你能看到,你需要明确的告诉 Ant 你想让它做什么。有

一个包含 javac 任务的编译目标用来将 src/main/java 的源码编译至 target/classes

目录。你必须明确告诉 Ant 你的源码在哪里,结果字节码你想存储在哪里,如何将这些字节码打包成 JAR 文件。虽然最近有些进展以帮助 Ant 减少程序,但一个开发者对

Ant 的感受是用 XML 编写程序语言。

Build.xml配置文件详细解释

下面简单的解释下这个文件
1.
每个build文件都包含一个project标签.name属性指项目的名称,可以随你自己取.default指默认要执行的target.basedir顾名思义是工作的根目录.
2.<property>
可以理解为我们写程序时的变量.name是变量的名称 value是变量的值,在下面的脚本要用到这个变量时需要使用${name}方式调用
3</target>
标签是build.xml文件的核心标签.里面主要是写一些你要做的操作然后依次按照你写好的依赖关系逐步执行target. name属性是target的名称,depends属性是指,当前这个target执行时必须先把depends对应的target执行(如果depends对应的target没有执行)如果depends对应的target已执行了,则直接执行当前的target
4.<javac>
就是java中的编译命令.srcdir是指需要编译的java文件的目录.destdir是指编译后的class文件存放的目录
5<copy>
这里的两个属性应该很好理解,todircopy的目标目录 ,overwrite表示是否覆盖.<fileset>文件集合.dir属性表示被copy的源文件目录.excludes表示除开什么文件类型之外的文件
6<jar>
打成jar 可以象上面那样写也可以象这样写<jar jarfile="${${webApp}/WEB-INF/lib/test.jar}" basedir="${dest}"/>.jarfile表示生成的jar的文件,basedir表示class文件所在的目录.
当然ant脚本并没有这么简单.要写出一个好的ant脚本,部署一个庞大的项目,需要写出复杂的ant脚本,那是需要我们自己去在项目中运用才能有那种能力的

 

参考文献:1,《Maven权威指南》,见Maven与Ant对比一节

                     2,http://www.javaeye.com/topic/319186