Apache Ant简介
用一句话介绍Ant就是执行一系列定义好的过程,就像Make一样。像很多的自动化脚本一样,但是还额外提供各个target之间的依赖关系管理。由于Ant没有包依赖管理,所以转Maven的挺多的,但不管怎么样,知道Ant的思想和能做什么还是值得的。Ant是用Java写的,内置了很多现成的task,比如compile,assemble,test和run等。用户还可以自己写自己的antlib来满
用一句话介绍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
更多推荐



所有评论(0)