看看《ant权威指南》或者ant的网站吧,里面介绍得非常详细ant的来历,目的。
ant是tomcat的一个副产品,是在开发tomcat过程中,开发人员需要一个整合编译工具,因为在一个大项目中,源代码散落在不同的package下面,即不同的子目录下面,子目录即包含源码文件,又包含更深层的子目录,因此,编译源代码并不是一句命令就可以搞定的。

windows下面用visual studio开放产品的时候可以一键编译,是因为visual studio创建了很多项目资源文件,编译时在后台自动调用了很多cc之类的命令,这个和Unix/Linux下编译过程是一样的,只不过没有明显显示出来而已。Unix/Linux下有一个自动编译工具,叫做automake,只要你定义好Makefile,然后只要运行make命令,automake会自动到所有子目录下寻找需要编译的源码进行编译和连接,所以unix/linux下也可以一条命令编译。

可惜,java下并没有这样的工具。所以tomcat的开发者原来想使用automake作为集成编译工具的。不过,后来发现automake并不完全符合他们的要求,首先,automake不是跨平台的,这就意味着他们写的编译脚本不能和tomcat源代码一样被移植。其次,开发者需要的一些特性automake提供不了,扩展其功能也不是非常方便,所以就自己开发了一个基于java的跨平台的make工具,ant就这样诞生了。

由于java程序的特性,不同的源代码编译的时候需要引入很多第三方的jar包,ant可以使用通配符的方法自动装载一些目录下所有的jar,而不再需要一个一个手工指定classpath了。这点是最早引起我注意ant的。用ant管理java程序的发布过程,编译,测试,生成javadoc文档,打包,上传,可以用一个命令就搞定了,是不是很方便?

除此之外,ant可以执行的操作已经远远超过了编译java程序这个范围。ant可以下载网络上的文件,可以通过ftp上传/下载文件,可以自动把编译好的有关文件打包,可以自动打包成jar, war, ear等java ee所需要的应用包的不同格式,自动调用测试程序来测试代码,也可以自动解开压缩包。ant还可以实现文本替换, 实现copy, move, delete 等等文件操作。通过ant配置文件也可以让你用命令行就可以发送邮件,自动部署tomcat应用。还能自动从源码管理系统如CVS/Subverion/VSS里面取出源代码,也能自动向源码版本管理系统提交修改。功能太多了。具体自己看ant的文档吧。

我就曾经用ant实现了一个每日自动把日志文件压缩后并上传到某个服务器,然后发送邮件通知的功能,也实现过每天自动备份指定的目录的功能,ant能够自动识别新修改过的文件而实现了增量备份,省时省力,非常好用,比写perl脚本都要简单许多。整个ant目录不含文档仅3.41M大小,加上文档总共31.4M,ant的文档是非常详细的,几乎每一个ant命令都有示例,依样画葫芦copy下来稍微改一下就可以用了。如果英文水平足够的话光看文档就够了,不需要买任何书就能掌握ant的用法了。

ant来历的更多相关文章

  1. Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告

    最近在做基于jenkins ant  junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...

  2. React中使用Ant Table组件

    一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启 ...

  3. [Ant]Ant简易教程

    前言 Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.由Apache软件基金会所提供. Ant是纯Java语言编写的,所以具有 ...

  4. jenkins / ant / jmeter 持续集成接口自动化

    1. 将 jmeter 脚本放在/var/lib/jenkins/workspace/Jmeter_auto/jmxpath路径下 2. 点击http://jk.facebank.net.cn/job ...

  5. Maven与Ant比较

    Maven与Ant比较 0 « 上一篇:Jenkins学习三:介绍一些Jenkins的常用功能» 下一篇:Jenkins学习四:Jenkins 邮件配置 posted @ 2015-03-25 16: ...

  6. 一.Jmeter+Ant+Jenkins搭建持续集成接口性能自动化测试

    微创新作品信息 1)微创新作品描述 A.为什么诞生: 1. 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换, ...

  7. Eclipce结合Ant进行编译、打包、传输、运行

    注意: 用Ant构建时,build path只能是单级的,如默认的src,如果是类似basePath/jsr253这样的话,运行Ant build时会报错,说找不到jsr253. (此文讲述的是以an ...

  8. ant 使用指南

    一.概述 ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant. 开发环境: System:Windo ...

  9. 在Eclipse中集成Ant配置

    提要:本文将向你展示如何使用Eclipse设置为Ant所用的属性值和环境变量,并简要分析如何配置Ant编辑器以便从Eclipse内部操作Ant文件. 一. 修改Ant Classpath 在使用一个可 ...

随机推荐

  1. laravel code bright

    Project RootLet’s start by taking a look at the root folder structure.• app/• bootstrap/• vendor/• p ...

  2. Visual Studio原生开发的10个调试技巧(转)

    本文由 伯乐在线 - JingerJoe 翻译自 Marius Bancila.转载请参见文章末尾处的要求.   [感谢@_La_Isla_Bonita 的热心翻译.如果其他朋友也有不错的原创或译文, ...

  3. c#桥接模式(bridge结构模式)

    桥接模式(bridge结构模式)c#简单例子 在前面的玩家中每增加一个行为,就必须在每个玩家中都增加,通过桥接模式将行为提取出来了,减少变化 ? 1 2 3 4 5 6 7 8 9 10 11 12 ...

  4. ☀【offset() / position()】

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  5. [Irving]Sql Server 日期、时间、比较

    在sql 的数据库表里时间字段是比较全的格式:例如GetdataTime字段:2007-06-05 12:34:50. 但在前台程序里,利用日历控件,可能查询的时候是以某天来做比较,例如开始时间:20 ...

  6. LoadRunner调用Java程序—性能测试

    为了充分利用LoadRunner的场景控制和分析器,帮助我们更好地控制脚本加载过程,从而展现更直观有效的场景分析图表.本次将重点讨论LoadRunner如何调用Java测试代码,完成压力测试. 通常我 ...

  7. NHibernate统一类封装代码

    NHibernate已经成为.net主流的ORM框架,当然,在开发中如果需要使用NHibernate的话,我们一般会对她进行一次封装,以便在项目中使用更方便,以及对NHibernate有一个全局的控制 ...

  8. bzoj 1975 [Sdoi2010]魔法猪学院(k短路)

    题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...

  9. Storm系列(二)系统结构及重要概念

    在Storm的集群里面有两种节点:控制节点和工作节点,控制节点上面运行Nimbus进程,Nimbus负责在集群里面分配计算任务,并且监控状态.每一个工作节点上面运行Supervisor进程,Super ...

  10. Weka 入门2

    现在我们介绍使用Weka来对数据进行分类.对数据进行分类,我们必须先指定那一列作为预测类别.因为数据文件格式的问题,类别一般都是最后一列属性.我们可以使用setClassIndex来设置类别.然后我们 ...