Ant是专门为Java开发的一款编译工具,很多开源工具都能通过Ant配置文件轻松运行,掌握这个工具对以后编译管理项目很有用处。
Ant下载安装
登陆官网http://ant.apache.org/ 下载Ant
压缩包并解压,然后在系统环境变量中添加ant
包的bin
路径。例如我的ant位置是C:\Program Files\apache-ant-1.9.6
, 那么在系统环境变量path
中添加路径C:\Program Files\apache-ant-1.9.6\bin
,如下图所示
然后在命令行输入ant -version
能够查看到版本信息,配置就成功了
build.xml配置项目
一个项目的基本配置如下代码所示:
<?xml version="1.0" encoding="UTF-8"?>
<project name="yourProjectName" default="all" >
<property name="build.classes.dir" location="build/classes"/>
<property name="src.dir" location="src" />
<property name="lib.dir" location="lib"/>
<path id="lib.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="mkdir">
<mkdir dir="${build.classes.dir}" />
</target>
<target name="compile" >
<javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="utf-8" debug="yes">
<classpath refid="lib.classpath" />
</javac>
</target>
<target name="run" depends="mkdir">
<java fork="true" failonerror="yes" classname="app.Main">
<classpath location = "${build.classes.dir}"/>
<classpath refid = "lib.classpath"/>
</java>
</target>
<target name="all" depends="mkdir,compile,run">
</target>
</project>
<project name="yourProjectName" default="all" >
name
指定工程的名字,default
指定工程运行时执行的target
名字<target name="all" depends="mkdir,compile,run">
ant
中不同的任务由不同的target
来完成,而target
执行的任务则是可自由定制的。其中,name
指定目标名字,depends
则指定该执行该target
前,必须先执行哪些其他的target
,接下来分别看看这三个前置任务的执行内容。<target name="mkdir"> <mkdir dir="${build.classes.dir}" /></target>
mkdir
主要用来生成目录,这里生成的是编译后的classes
存放目录。注意到这里引用了一个自定义的变量build.classes.dir
这个变量在配置文件最开始有过定义,<property name="build.classes.dir" location="build/classes"/>
,其中name
用来标识该变量,点号可以随便用,如果该变量是一个文件夹 路径,则用location
指定位置,注意到这里的位置都是参照build.xml
文件的相对路径,如果改变量仅仅用来表示一个值,则用value
属性指定具体值。compile
任务中,javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="utf-8"
通过使用javac
元素来配置编译指令,srcdir
指定代码源文件,destdir
指定编译输出目录,而最后encoding
则指定编码格式,通常包含中文注释的代码文件编译出错,就是由于没有配置该参数。注意到使用classpath指定资源路径时,“引用”了lib.classpath
路径,而该路径则包括了所有库jar
包,将该资源路径单独定义方便复用。run
任务中<java fork="true" failonerror="yes" classname="app.Main">
使用java
元素配置运行参数,fork
指定是否在新JVM中运行,一般图快就选false
,classname
则指定项目的入口类,类似于javac
,使用classpath
定义运行是所需的资源目录,首先是类文件,然后是运行支撑库。
最后在命令行当前目录键入ant即可构建整个项目