Ant工具学习心得

来源:互联网 发布:js 3D图形插件 编辑:程序博客网 时间:2024/05/16 00:24

ant工具的使用:
1.在我们刚学JAVA的时候,我们编译后的产生的.class文件,都是在编译的源文件所在的文件夹生成的,由于是初学,编译成功后基本上来说就不用再维护了,所以编译生成的.class文件放在源文件夹所在目录也无所谓。但是,在实际项目中,一个项目有很多个程序,多个子程序组成一个大的程序。而且这些程序编译成功以后,在以后的不确定的时间里面,还有可能需要重新修改,这就涉及一个问题,例如:一个大程序中由10个小程序组成,而我们要修改其中的第5个小程序,修改完以后我们还要把整个大程序运行一遍。那么我们就要一个一个的编译每个小程序。显然这样的方法是不行的,对一个大的项目,我们应该把以前编译成功的小程序连接起来,就像用录像机把整个实现的过程录下来,以后要用的时候,放录像来看,就能把以前的工作重新做一遍,而不用手工再重新做一次,这样,效率大为提高了。

2.ant就有用来实现类似于录像机的功能。它首先要建立一个build.xml的文件。
build.xml文件的功能就相当于录像机,通过build.xml,你可以把每个需要编译的小程序记录起来,方法是:
(1).先建立一个工程标签对<project></project>,其中第一个标签,也就是开始标签,有两个主要的属性:一个是name,一个是default。name属性就是工程的名称。default就是运行这个project文件的时候,先起动哪个程序,缺省值是从下面的第一个开始执行!
(2).第二个就是<target></target>标签对,这个标签对的作用就是:在标签对中间可以实现一个或多个任务,它也有两个主要的属性:name和depends。name也就是任务的名称,depends的作用是在运行它所属的任务之前,必须要实现的任务。
(3).在<target>标签对中,有很多可以执行的任务。例如:mkdir,javac,java等(今天就学到了这三个).mkdir的作用是新建一个空文件夹。javac的作用是编译指定路径(srcdir)的源文件并将生成的.class文件放到指定的目录(destdir).

3.ant,首先得增加path,把ant的path增加进系统的path,要注意的一个问题是:如果是在DOS命令行窗口增加的path,例如:set path=%path%;C:/apache-ant-1.6.5/bin; 在%path%之后必须要有";"号.

3.面通过一个例子来演示如何使用ant。这个例子的功能是:编译一个文件夹下的源文件,然后将产生的.class文件存放到一个指定的文件夹(这里是./dest,使用的是相对路径);然后运行编译成功的.class,最后使用delete删除一个目录(这里是删除刚刚创建的目录)。

例子如下:<project name="firstdest" default="compile">
<!--其中,project定义一个工程,名称为:"firstdest",默认运行的文件是"compile".-->
<property name="src.dir" value="src"/>
<!--property的作用是定义程序运行时所需要的属性,name就是定义的属性名,value就是属性值,这行代码的意思就是定义了一个属性名称src.dir,值就是在当前目录下的src目录。-->
<property name="dest.dir" value="./dest"/> <!--这里使用了相对目录"./dest"。-->
<property name="classname" value="hello"/> <!--定义了一个类的名字-->
<property file="test.property"/> <!--如果使用file属性,就可以把上面所做的工作在另一个文件里面来完成,如上面的这条语句,在test.property文件里是这样定义的classname=hello,当程序要运行到这个属性的时候,它会自动在test.property文件寻找. 注意的是:像dest.dir这个属性,在test.property文件里面是不能直接写成dest.dir=./dest的,要写成dest才能正常运行-->

<target name="init"> <!--target相当于一个工程里面的一个项目-->
  <mkdir dir="dest"/> <!--创建一个文件夹,名称为dest -->
</target>

<target name="compile" depends="init"> <!--一个项目,它运行的时候要依赖于"init",就是运行compile之前必须先运行"init"-->
  <javac srcdir="${src.dir}" destdir="dest"/>
</target>

<target name="run" depends="compile">
  <java classname="${classname}" classpath="${dest.dir}"/>
</target>

<target name="delete" depends="run">
  <delete dir="${dest.dir}"/>
</target>

</project>

4.使用ant工具,我们一般来说要手动设置JAVA_HOME,如果不手动设置JAVA_HOME,则ant会自动寻找,但不一定能正确找得到,如果找不到,则ant会报错,提示找不到运行所需的path。
小技巧:使用ant怎么编译当前目录下的.class文件(就是与build.xml同一级目录的class)?如果要编译的文件与build.xml在同一个目录,那么编译的路径为"./."或者"./"。

暂时想得这么多了,以后想到再加!!