在前面了解了ant工具的一些概念,下面进行简单的使用。
ant是一种构建工具,与make类似,但它是由java实现的,跨平台。可以到apache官网:http://www.apache.org/进行下载。配置环境变量很简单,和配置jdk之类的差不多,把下下来的ant解压到某个目录,让环境变量指向bin目录即可。
下面给了一个非常简单的例子,编写一个简单程序,编译它们,然后打成jar包,并运行:
HelloWorld.java:
- package test.ant;
- public class HelloWorld{
- public static void main(String[] args){
- System.out.println("Hello world1");
- }
- }
执行ant需要一个build.xml配置文件,它描述了ant需要执行的程序,具体操作等所有信息,build.xml:
- <?xml version="1.0" encoding="UTF-8" ?>
- <project name="HelloWorld" default="run" basedir=".">
- <property name="src" value="src"/>
- <property name="dest" value="classes"/>
- <property name="hello_jar" value="hello1.jar"/>
- <target name="init">
- <mkdir dir="${dest}"/>
- </target>
- <target name="compile" depends="init">
- <javac srcdir="${src}" destdir="${dest}"/>
- </target>
- <target name="build" depends="compile">
- <jar jarfile="${hello_jar}" basedir="${dest}"/>
- </target>
- <target name="run" depends="build">
- <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
- </target>
- <target name="clean">
- <delete dir="${dest}" />
- <delete file="${hello_jar}" />
- </target>
- <target name="rerun" depends="clean,run">
- <ant target="clean" />
- <ant target="run" />
- </target>
- </project>
简要介绍一下上面这些标签的含义:
第一句:<?xml version="1.0" encoding="UTF-8" ?>,这个就不多说了,版本,编码见得太多了。
<project name="HelloWorld" default="run" basedir=".">
</project>
name是你给它取的名字,basedir代码工作的根目录,.代表当前目录.default代表默认要做的事情,即执行哪个操作。
<property name="src" value="src"/> 类似变量。name定义变量的名称,value定义变量的值。
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
你要执行的一个操作叫做一个target,name是定义名称,depends是它执行所依赖的target,比如这里,在执行compile之前,会先检查init是否曾经被执行,如果执行过就直接执行compile,否则先执行它依赖的init target,然后在执行compile target。
上面每个target从名字可以看出它们分别的作用:
新建文件夹:
<target name="init">
<mkdir dir="${dest}"/>
</target>
编译:
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
做jar包:
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
运行:
<target name="run" depends="build">
<java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
</target>
删除生成的文件
<target name="clean">
<delete dir="${dest}" />
<delete file="${hello_jar}" />
</target>
再次运行,这里显示了如何在一个target里边调用其他的target
<target name="rerun" depends="clean,run">
<ant target="clean" />
<ant target="run" />
</target>
好,这个简单的build文件就算完成了,然后新建一个src文件夹,把源程序按照这里的test.ant包目录放进src里面。把build文件放到与src同一目录下,在命令行定位到build.xml目录下,键入ant命令即可,如果只想单独执行某个target,键入 ant target name,如:ant build.
ant也并没有IDE工具好用,但它也有其特点:
在服务器部署的时候,因为它小巧,方便,只需要一个build.xml,到任何一台服务器只需简单修改一些设定和目录就可以运行。
在linux或者unix部署的时候,就发挥作用了。
当有些维护人员不懂编程时,你只需给它build文件,让他执行简单命令即可。