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,如下图所示

javac ant项目打jar包 ant 编译java_ant

然后在命令行输入ant -version能够查看到版本信息,配置就成功了

javac ant项目打jar包 ant 编译java_apache_02

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>
  1. <project name="yourProjectName" default="all" > name指定工程的名字,default指定工程运行时执行的target名字
  2. <target name="all" depends="mkdir,compile,run"> ant中不同的任务由不同的target来完成,而target执行的任务则是可自由定制的。其中,name指定目标名字,depends则指定该执行该target前,必须先执行哪些其他的target ,接下来分别看看这三个前置任务的执行内容。
  3. <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属性指定具体值。
  4. compile任务中,javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="utf-8" 通过使用javac元素来配置编译指令,srcdir指定代码源文件,destdir指定编译输出目录,而最后encoding则指定编码格式,通常包含中文注释的代码文件编译出错,就是由于没有配置该参数。注意到使用classpath指定资源路径时,“引用”了lib.classpath路径,而该路径则包括了所有库jar包,将该资源路径单独定义方便复用。
  5. run任务中 <java fork="true" failonerror="yes" classname="app.Main"> 使用java元素配置运行参数,fork指定是否在新JVM中运行,一般图快就选falseclassname 则指定项目的入口类,类似于javac,使用classpath定义运行是所需的资源目录,首先是类文件,然后是运行支撑库。

最后在命令行当前目录键入ant即可构建整个项目