Apache Ant简介

用一句话介绍Ant就是执行一系列定义好的过程,就像Make一样。像很多的自动化脚本一样,但是还额外提供各个target之间的依赖关系管理。由于Ant没有包依赖管理,所以转Maven的挺多的,但不管怎么样,知道Ant的思想和能做什么还是值得的。


Ant是用Java写的,内置了很多现成的task,比如compile,assemble,test和run等。用户还可以自己写自己的antlib来满足自己的特殊需求。


Ant是用一个build.xml文件来描述的。以下是一个例子:

<project name="MyProject" default="dist" basedir=".">
  <description>
    simple example build file
  </description>
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist" location="dist"/>


  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
  </target>


  <target name="compile" depends="init"
        description="compile the source">
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>


  <target name="dist" depends="compile"
        description="generate the distribution">
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/lib"/>
    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
  </target>


  <target name="clean"
        description="clean up">
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>

初看起来还挺复杂,但是仔细看,这个描述还挺简单的,project是顶级元素,default指定的是默认的target名称,basedir指定Ant计算地址时会用到的基地址。


property就是定义变量。指定变量后,文件其它地方就可以直接用${name}来指引,这个没什么说的。


接下来就是定义target,可以指定依赖于哪个target。

init这个target会创建一个build目录,compile这个target会先执行init,然后用内置的方法javac告诉其将源码目录src下的编译好放到build目录下。dist这个target依赖compile,所以在执行dist本身之前,build目录下就已经有了编译好的java文件了,然后创建dist/lib目录,然后使用内置的jar方法将所有的class文件打包成jar文件放到dist/lib目录下,名字起成MyProject-${DSTAMP}.jar。clean这个target将build和dist目录删除。


好了,你已经入门了。

原文:http://blog.csdn.net/hongchangfirst/article/details/49904221

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst





你可能感兴趣的:(Apache Ant简介)