Ant 初学习(一)

简单的先学一点ant的知识,毕竟以后可能也用的到,不过想自己写出不错的编译文件,不仅要多练习,也得有机遇。

 

先直接来一个HelloAnt.java:

 

说明:

1. project的根目录:/home/hadoop/ant

2. 注意在java中,CLASSPATH路径就是java检索的主文件夹路径,package里描述的是在这个路径下的路径

  这里已经把/home/hadoop/ant添加到了CLASSPATH,然后在ant下新建了test/src目录,HelloAnt.java放在这里

3. java使用命令行执行class文件的时候,要打全包名,java test.src.HelloAnt(在任何目录下均可以执行,因为执行会先搜索CLASSPATH)

 

***************************************************************************************************

接着是一个ant文件:

解释一下:

1. 第1行是例行公事

2. 第2行project是这个工程的标签,ant的所有内容都在这个tag对中

<project> </project>

 name是工程名,default是工程默认行为,basedir是根目录,也就是build.xml存在的目录

3. 第3行引入了一个属性文件build.properties(这个名字不能乱改),把一些属性的值写入进去,这样后面几个属性的值可以直接从里面调用(这样做的好处是如果有多个build文件有重复的属性,可以统一起来修改,但是对于一个单一的build不需要这么做其实)

4. 第4-6行是引入的三个属性值,注意格式即可

5. 第8行开始出现target,这里说一下,Ant的整体框架是一个project,多个target,每个target包含很多task

 第一个target命名为init,执行的方法是mkdir

6. 第13行开始是第二个target,这个target的执行依赖第一个target,可以写多个依赖。系统会检查被依赖的target是否执行,如果没有,按书写顺序依次执行。比如

  <target name="third" depends="second,first">

  </target>

  那么按顺序fisrt,second,third来执行 

7. 需要注意的是,${dest}指的是在当前根目录下的相对路径,比如dest = dest/mnt 那么实际创建的文件夹绝对路径就是/home/hadoop/ant/test + /dest/mnt

 而不是在CLASSPATH的路径下创建,也就是不是/home/hadoop/ant + /dest/mnt

8. compile这个target表示,在javac编译后,把class文件放在destdir里面,如果java文件有包名,那么在对应的地方也会创建相应的文件夹,比如:

 这里package test.src;而dest写的是output,那么在/home/hadoop/ant/test下创建output,并且把HelloAnt.class放在output下的/test/src目录

9. 另外注意,在build.xml存在目录下,如果要编译整个文件,直接ant就好;如果要执行其中某个target,用ant target就可以

 

*****************************************************************************************

最后是刚才文件的输出:

 

 

 

 

 

 

 

 

 

 

posted on 2013-03-26 16:35  melburg  阅读(148)  评论(0)    收藏  举报