Apache Ant 1.6.5 Manual
一:为什么要使用Ant构建工具 ?
答: 在学数据结构的时候,有一本参考资料〈〈 Java Structures 〉〉的时候,作者Bailey 提供了一个Structures包。里面有该书中的源代码。该包中有很多类,而且类和其他类之间都还有很多
二:安装Ant构建工具:
1. 你可以从
http://cvs.apache.org/builds/ant/nightly/..下载最新版本的Ant
2. 下载后解压文件压缩包。
3. 环境变量的设置:右单击:我的电脑 / 高级 / 环境变量 / 单击 / 系统变量/ Path /尾缀” ;ANT_HOME / bin” (假设ANT_HOME是你解压的路径).
三:使用 Ant构建:
1.
我们的工程文件目录是C:/Itcast/Day0821,现该目录下有文件夹src和build.xm
文件。其中src下存放的是JAVA源文件 !
2.
下面编辑build.xml文件,并将build.xml文件存放在工程文件的根目录下!
<project name="firstAntDemo" >
<description>
Itcast Learning !
</description>
<!-- Create the class directory structure used by compile -->
<target name="init">
<mkdir dir="class"/>
</target>
<!-- Compile the java code from ${src} into class -->
<target name="compile" depends="init">
<javac srcdir="src" destdir="class" excludes="*.java" includes="Hello/*.java" />
</target>
<target name="run">
<!—classpath要选择运行的class文件的路径,可以是相对路径也可以是绝对路径
<java classname="Test" classpath="class" depends="compile">
</java>
</target>
</project>
4. 在命令行输入path并进入C:/Itcast/Day0821 目录.:
执行:ant 则将对src / home 目录下的文件进行编译,并运行 Number1.
脚下留心:
(拿几个钟头的本钱换回来的,绝对不是瞎拜
!)
1.
全局变量的定义和使用:
定义: <property name="src" location="src"/>
使用:
<javac srcdir="${src}" destdir="class" />
2. build.xml
中javac
任务执行类的编辑:
(1):<javac srcdir="src" destdir="class" />的运行结果是:
答案: 所有src目录以及其子目录下所有的JAVA文件都被编译 !
(2):改换成<javac srcdir="src" destdir="class" includes="Hello/*.java"/>的运行结果是什么呢 ?
答案:
只有src/hello/下面的java文件被编译 !而hello子文件夹下的JAVA文件以及src目录下的java文件都不被编译!
(3):改换成<javac srcdir="src" destdir="class" excludes="*.java"/>的运行结果呢?
答案:src目录下面的java文件将不被编译,src子文件夹下的java文件仍然被编译
!
3. java
任务执行类的编辑:
(1):classpath属性是要执行java命令的class文件的路径,可以是相对路径也可以是绝对路径。Depends属性是该target所依赖的target.
(2):args属性:传递参数。
(3):java任务执行的类必须是public 修饰的,否则报如下错误:
(3):java任务执行的类必须是public 修饰的,否则报错:
思考:
看看上面的build.xml是不是写的很死板啊 ?假设我的文件里面srcdir=”src”,如果我的xml文件中多处需要用到srcdir这个属性值。呢么当我srcdir属性值需要由 src变为 class时,我是不是需要修改每一个用到 srcdir属性的值! 这岂不是很麻烦 ?有什么好的办法呢?下面介绍property 的使用:
property:的属性:name, value , file 等,下面是使用property属性的build.xml文件:
<project name = "Day0822Demo" default = "run">
<description>
THE ANT DEMO IN 2006-08-22
</description>
<!-- set global properties for this build -->
<property name = "src.dir" value = "src"/>
<property file = "a.property"/>
<property name = "dest.dir" value = "class"/>
<!-- Create the class directory structure used by compile -->
<target name = "init">
<mkdir dir = "${src.dir}"/>
<mkdir dir = "${dest.dir}"/>
</target>
<!-- Compile the java code from ${src} into class -->
<target name = "compile" depends="init">
<javac srcdir = "${src.dir}" destdir="${dest.dir}" excludes="*.java" includes="Hello/*.java" />
</target>
<target name = "run" depends="compile">
<java classname = "${mainClass}" classpath = "${dest.dir}"/>
</target>
</project>
( * ) a.property
文件:
就一行
:
mainClass=Test1
呵呵 ! 这样是不是在以后改动的时候方便多了 ?