ANT是一个构建工具,它有跨平台、操作简单、 安装简单、占用资源少等特点,它只有一个配置文件build.xml,我们要做的事情就是在build.xml中去定义我们想要做的事情,ANT它本身有 很多命令和语法,笔者刚接触时也是比较头大,后面慢慢去学习查询,基本上了解了整个build.xml包含的内容,***的学习办法就是查看例子,通过例子 去熟悉不同标签里面的属性和参数的含义,我们不需要全部都要记住,只要在使用的时候知道如何去查询即可。
下面来构建我们***个build.xml文件,这只是简单的开始:
在D:/test/ant/src下创建HelloWorld.java文件
- package test.ant;
- public class HelloWorld {
- public static void main(String[] args) {
- System.out.println("Hello World");
- }
- }
在上一级目录创建build.xml文件,键入以下内容:
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="HelloWorld" default="run" basedir="."><!-- 项目名为HelloWorld,default代表默认要做的事情,.代表当前目录-->
- <property name="src" value="src"/><!-- 定义src变量 -->
- <property name="dest" value="classes"/> <!-- 定义dest变量-->
- <property name="hello_jar" value="hello.jar"/><!-- 定义hello_jar变量-->
- <target name="init"> <!-- 定义一个目标,这里表示初始化,mkdir表示创建一个目录,${dest}表示取变量dest的值 -->
- <mkdir dir="${dest}"/>
- </target>
- <!-- 编译目标,depends是它依赖的target,在init执行过才执行compile-->
- <target name="complie" depends="init">
- <!-- 运行javac命令 srcdir源目录 destdir目标目录-->
- <javac srcdir="${src}" destdir="${dest}"/>
- </target>
- <!-- 构建目标,依赖compile-->
- <target name="build" depends="complie">
- <!-- 运行jar命令 jarfile为jar文件 basedir为classes-->
- <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>
来总结一下以上用到的元素:
project节点元素
Ant构建文件的根元素,属性:
- name属性:用于指定project元素的名称。
- default属性:用于指定project默认执行时执行的target的名称。
- basedir属性:用于指定基路径的位置。
property节点元素
用于定义变量或参数的定义,属性:
- name属性:变量名字
- value属性:变量值
target节点元素
可以看做是一个任务,它有如下属性:
- name属性:指定target元素的名称。
- depends属性:用于描述target之间的依赖关系。
- if属性:用于验证指定的属性是否存在,若不存在,所在target将不会被执行。
- unless 属性:该属性的功能与 if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在 target 将会被执行。
- description 属性:该属性是关于 target 功能的简短描述和说明。
mkdir命令
创建目录。
javac命令
用于编译一个或一组java文件。
jar命令
用来生成一个JAR文件。
delete命令
对文件或目录进行删除。