对ant早有听闻,就是一直上不了手,今天时间允许,google一下,发现一篇教程很棒,感谢作者,该文地址为:http://www.javaresearch.org/article/66130.htm。
前骤:在http://www.apache.org/下载ant最新的版本1.7.1,解压ant(解压缩它,并把它放在一个尽量简单的目录,例如D:/ant-1.7.1,但这么做是有好处的.).
按其模仿操作如下:
一、安装环境:
1、安装J2SE6,设置JAVA_HOME ,PATH中添加JAVA_HOME 目录下的bin目录
2、设置ANT_HOME ,PATH中添加ANT_HOME目录下的bin目录
3、测试一下你的设置,开始-->运行-->cmd进入命令行-->键入 ant 回车,如果看到:
Buildfile: build.xml does not exist!
Build failed
成功安装,呵呵
二、具体步骤
1、在D:/建立一个文件夹为antApp,在antApp下建立一个文件夹src,建立一个文件build.xml.
2、在src中建立测试的java文件:HelloWorld.java,其代码如下:(非常简单)
- package test.ant;
- public class HelloWorld{
- public static void main(String[] args){
- System.out.println("Hello world");
- }
- };
3、编写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>
三、对build.xml文件的理解:
- <project name="HelloWorld" default="run" basedir=".">
- </project>
ant的所有内容必须包含在这个里边,name是你给它取的名字,basedir故名思意就是工作的根目录 .代表当前目录。default代表默认要做的事情。
- <property name="src" value="src"/>
- <property name="dest" value="classes"/>
- <property name="hello_jar" value="hello1.jar"/>
类似定义程序中的变量。
新建文件夹:(init初始化,最开始做的事件,compile依赖与init)
- <target name="init">
- <mkdir dir="${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>
由此可见,核心的动作还是javac、java、jar等jdk自带的命令,只不过把他柔和起来了,呵呵。为了更多一点的功能体现,又加入了两个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>
四、运行
1、开始-->运行-->cmd进入命令行-->键入:d:
2、进入D盘后,cd antApp
3、敲入ant,ok了,可以看到想要的结果,同时可以使用ant compile 或ant clean 等,单独允许一部分。
好了,学习成功,例子也出来了,感谢作者。有了深入的基础,继续努力。。。。