一、构建ant环境
1、下载:到ANT官方网站http://mirror.bjtu.edu.cn/apache/ant/binaries/下载最新版本,当前是apache-ant-1.8.4-bin.zip,解压后即可。
2、配置环境变量:我的电脑----属性-----高级----环境变量
如:ANT_HOME:D:\ant
PATH:%ANT_HOME%\bin (为了方便在dos环境下操作)
3、查看是否安装成功:在dos窗口中输入命令ant,若出现结果
Buildfile:build.xml does not exist!
Build failed
说明ant安装成功!因为ant默认运行build.xml文件,这个文件需要我们建立。
(以上安装部分就结束了,下面继续介绍如何编译打包)
二、体验ant
就像每个语言都有HelloWorld一样,一个最简单的应用能让人感受一下Ant
1,首先你要知道你要干什么,我现在想做的事情是:
编写一些程序
编译它们
把它打包成jar包
把他们放在应该放置的地方
运行它们
这里为了简单起见只写一个程序,就是HelloWorld.java程序代码如下:
1 package test.ant; 2 3 public class HelloWorld { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 System.out.println("Hello ant !"); 10 } 11 12 }
2,为了达到上边的目的,你可以手动的用javac 、copy 、jar、java来完成,但是考虑一下如果你有成百上千个类,在多次调试,部署的时候,一次次的javac 、copy、jar、java那将是一份辛苦的工作。现在看看ant怎么优雅的完成它们。
要运行ant需要有一个build.xml虽然不一定要叫这个名字,但是建议你这么做
下边就是一个完整的build.xml,然后我们来详细的解释每一句
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <project name="HelloWorld" default="run" basedir="."> 3 <property name="src" value="src"/> 4 <property name="dest" value="classes"/> 5 <property name="hello_jar" value="hello1.jar"/> 6 <target name="init"> 7 <mkdir dir="${dest}"/> 8 </target> 9 <target name="complie" depends="init"> 10 <javac srcdir="${src}" destdir="${dest}"/> 11 </target> 12 <target name="build" depends="complie"> 13 <jar jarfile="${hello_jar}" basedir="${dest}"/> 14 </target> 15 <target name="run" depends="build"> 16 <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/> 17 </target> 18 <target name="clean"> 19 <delete dir="${dest}"/> 20 <delete file="${hello_jar}"/> 21 </target> 22 <target name="rerun" depends="clean,run"> 23 <ant target="clean"/> 24 <ant target="run"/> 25 </target> 26 </project>
解释:
<?xml version="1.0" encoding="UTF-8" ?>
build.xml中的第一句话,没有实际的意义
<project name="HelloWorld" default="run" basedir=".">
</project>
ant的所有内容必须包含在这个里边,name是你给它取的名字,basedir故名思意就是工作的根目录 .代表当前目录。default代表默认要做的事情。
<property name="src" value="src"/>
类似程序中的变量,为什么这么做想一下变量的作用
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
把你想做的每一件事情写成一个target ,它有一个名字,depends是它所依赖的target,在执行这个target 例如这里的compile之前ant会先检查init是否曾经被执行过,如果执行过则直接直接执行compile,如果没有则会先执行它依赖的target例如这里的init,然后在执行这个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>
为了不用拷贝,我们可以在最开始定义好目标文件夹,这样ant直接把结果就放在目标文件夹中了
新建文件夹:
<target name="init">
<mkdir dir="${dest}"/>
</target>
为了更多一点的功能体现,又加入了两个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>
3、将HelloWorld.java 和 build.xml文件拷贝至一个文件夹下,HelloWorld.java要位于src目录下(build.xml中定义了,所以才要这么做的)
4、采用DOS命令进入对应的文件夹,输入ant命令
OK,大功告成 ~ :)
apache Ant中文手册 2.0版 http://www.blogjava.net/Files/dreamstone/ant3.rar