Apache Ant主要用于Java项目的构建。为什么要使用Ant:

1)项目构建不是简单的编译,各种资源需要合理构建,例如有的类需要压缩成jar文件,有的文件需要放在指定位置,有时候需要使用配置文件。这些工作是繁杂琐碎的,手工处理难免出错。

2)诸如Myeclipse之类的IDE工具可以方便地部署web项目,但是脱离了这些集成工具,例如在需要部署项目的机器上没有这种集成工具,或者目标机器的操作系统不支持这种工具,怎么办?这时ant是很好的工具。

现在以一个简单的Java项目为例来说明ant的项目构建过程(项目名称DateDemo,其中src文件夹中包含源文件DateDemo.java):

第一步:ant的安装配置。下载地址http://archive.apache.org/dist/,下载文件名ant-current-bin.zip,解压缩后路径为D:/Program Files/apache-ant-1.7.1。配置用户变量名ANT-HOME,其value是

Ant解压后的放置路径D:/Program Files/apache-ant-1.7.1;配置系统变量Path,添加Ant的bin文件夹路径D:/Program Files/apache-ant-1.7.1/bin。此外,还要检查JAVA_HOME是否准确配置为jdk的路径的。

第二步:构建build.xml,这是ant的任务描述文件。在这个脚本中描述构建任务,ant就可以根据这个文件完成构建工程的任务。

<?xml version="1.0" encoding="UTF-8"?>
<project name="DateDemo" default="run" basedir=".">
    <property name="src" value="src" />
    <property name="dest" value="build/classes" />
    <property name="lib" value="build/lib" />
    <property name="np_jar" value="build/lib/DateDemo.jar" />
    <target name="init">
        <mkdir dir="${dest}" />
        <mkdir dir="${lib}" />
    </target>
    <target name="compile">
        <javac srcdir="${src}" destdir="${dest}" />
    </target>
    <target name="build">
        <jar destfile="${np_jar}" basedir="${dest}">
            <manifest>
                <attribute name="Main-Class" value="DateDemo" />
            </manifest>
        </jar>
    </target>
    <target name="run">
        <java classname="DateDemo" classpath="${np_jar}" />
    </target>
    <target name="clean">
        <delete file="${np_jar}" />
        <delete dir="${dest}" />
        <delete dir="${lib}" />
    </target>
</project>

代码解释:Ant脚本使用XML描述的。project结点是根节点,name是工程名称,basedir是工程根目录,“.”代表当前目录,default代表默认任务。<property name="src" value="src"/>定义了名称为"src"的属性,在整个XML文档中,都可以通过"${src}" 来调用这个属性值。下面通过target标签定义了ant相应的任务:init---初始化,创建目录,为后面的构建工作做准备;compile---编译;buil---生成jar文件;run---执行;clean---清除构建动作生成的文件及目录。这些工作都可以根据名称调用。

第三步:把上面的build.xml脚本放在DateDemo工程根目录下,此时工程目录结构如下:

----build.xml(ant脚本)

----src(源代码文件夹)

第四步:工程构建。进入DOS,把当前路径切换到DateDemo工程目录下,然后运行任务指令:

ant init:执行完后,将在项目下创建一个build/classes目录和build/lib目录

ant compile:ant会把制定目录中的源文件全部编译,并且把编译得到的类文件放在build/classes下

ant  build:执行完后,ant会在build/lib下生成项目对应的jar文件

ant run:运行这个项目。

结果:

通过修改ant脚本,可以实现项目的自动构建,不需要那么多步骤,如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="DateDemo" default="run" basedir=".">
    <property name="src" value="src" />
    <property name="dest" value="build/classes" />
    <property name="lib" value="build/lib" />
    <property name="np_jar" value="build/lib/DateDemo.jar" />
    <target name="init">
        <mkdir dir="${dest}" />
        <mkdir dir="${lib}" />
    </target>
    <target name="compile" depends="init">
        <javac srcdir="${src}" destdir="${dest}" />
    </target>
    <target name="build" depends="compile">
        <jar destfile="${np_jar}" basedir="${dest}">
            <manifest>
                <attribute name="Main-Class" value="DateDemo" />
            </manifest>
        </jar>
    </target>
    <target name="run" depends="build">
        <java classname="DateDemo" classpath="${np_jar}" />
    </target>
    <target name="clean">
        <delete file="${np_jar}" />
        <delete dir="${dest}" />
        <delete dir="${lib}" />
    </target>
</project>

在上面这个脚本中,定义了各个target之间的依赖关系(depends=""),直接执行"ant”命令就可以执行完所有步骤。因为在没有指明执行哪个target的时候,project中default指明了默认执行的是run,然后ant检测到运行run这个target的depends=build,所以先去运行build,继续向上检测,可以检测到init任务,从而开始执行整个ant脚本。

使用Ant构建简单项目的更多相关文章

  1. Ant—使用Ant构建简单Java项目(三)

    博客<Ant-使用Ant构建简单Java项目(二)>我们简化了运行Test类中main方法须要运行的命令,本博客来介绍一下如何使build.xml文件和当中使用property标签定义的属 ...

  2. springboot学习之构建简单项目搭建

    概述 相信对于Java开发者而言,spring和springMvc两个框架一定不陌生,这两个框架需要我们手动配置的地方非常多,各种的xml文件,properties文件,构建一个项目还是挺复杂的,在这 ...

  3. 用Ant实现Java项目的自动构建和部署

    原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml         本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...

  4. 使用 Ant 自动生成项目构建版本

    引言 对 于多版本项目,要提供新版本来跟上新功能或缺陷报告增加的速度,并同时仍然保持可接受的质量水平,可能是一项不小的挑战.构建自动化可确保准确性和消除人 为错误的可能性,从而部分地解决此问题.自动化 ...

  5. Android应用开发高效工具集1---ant构建简单Android项目

    本文转载于:http://blog.csdn.net/lincyang/article/details/40950153 在java编译那些事儿中提到了用ant去编译Java项目,今天扩展到用它来构建 ...

  6. 用Ant实现Java项目的自动构建和部署(转)

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.            ...

  7. Ant构建和部署项目(转)

    原文地址: http://www.blogjava.net/amigoxie/archive/2007/11/09/159413.html Ant是一个Apache基金会下的跨平台的构件工具,它可以实 ...

  8. 用Ant实现Java项目的自动构建和部署(转)

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.            ...

  9. Ant构建与部署Java项目---入门

    原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建 ...

随机推荐

  1. java8 获取对象中满足条件的金额之和

    记录一个小笔记:获取一个对象中,支付成功的金额之和: Long sum = list.stream().filter(o -> o.getStatus() == SUCCESS).mapToLo ...

  2. Linux环境准备20160921

    这篇文章,是我准备linux的java环境时候,碰到的各种问题,采用的是centos 6.5版本. 1.卸载open jdk  先查看 rpm -qa | grep java  # java-1.4. ...

  3. 强制打开qq

    (function(){ var QQ='10001'; //换成你公司的企业QQ(客服QQ) var str='tencent://message/?Menu=yes&uin='+QQ+'& ...

  4. 树形结构JSON的实现方法

    在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项.目前市场上常见的JavaScript框架及组件库中均包含自己的树 ...

  5. ACdream 1210 Chinese Girls' Amusement(高精度)

     Chinese Girls' Amusement Time Limit:1000MS     Memory Limit:64000KB     64bit IO Format:%lld & ...

  6. glPixelStorei(GL_UNPACK_ALIGNMENT, 1)用法

    http://www.cnblogs.com/sunnyjones/articles/798237.html 這個函数是對應著 glDrawPixels 而來的, 因為效率考慮, 所以, OpenGL ...

  7. 基于UDT connect连接通信以及文件传输--客户端

    上面一篇文章中提出了服务端的,其实这里没有严格意义的服务端和客户端之分,因为我在代码中是基于UDP的,不存在服务端与客户端,两个都是对等的,只是我这里进行一下简单的区分而已.在这里,客户端所进行的主要 ...

  8. [BZOJ2738]矩阵乘法 整体二分+二维树状数组

    2738: 矩阵乘法 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1643  Solved: 715[Submit][Status][Discuss ...

  9. 使用iframe实现页面无刷新提交表单

    iframe提交表单其实比ajax要方便一些,当然ajax也有ajax的好处,只是ajax编码处理有时有些麻烦,虽然经过转码是可以解决中文问题,但如果直接使用iframe不存这些问题了,下面来看看. ...

  10. Python与数据结构[0] -> 链表/LinkedList[2] -> 链表有环与链表相交判断的 Python 实现

    链表有环与链表相交判断的 Python 实现 目录 有环链表 相交链表 1 有环链表 判断链表是否有环可以参考链接, 有环链表主要包括以下几个问题(C语言描述): 判断环是否存在: 可以使用追赶方法, ...