Ant学习-001-ant 基础知识及windows环境配置
一、Ant 概要基础知识
Apache Ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git、TestNG等搭建持续集成测试开发环境,从而高效、高质量的构建产品。
Ant 有以下一些优点:
- 跨平台,可移植。Ant 是 Java 语言编写的,所以有很好的跨平台性和可移植性,无论是在 windows、Linux,还是 mac。
- 操作简单。 Ant 是由一个内置任务和可选任务组成的,运行时需要一个构建文件(build.xml),其通过调用目标树(target),就可以执行各种任务(task),同时每个 task 实现了特定接口对象。
- 易维护。Ant 构建文件(build.xml)是 XML 格式的文件,结构清晰简洁,所以很容易维护和书写。构建文件可以放在任何位置,通常建议将其放在项目的根目录中,以保持项目的简洁和清晰。
通常 Ant 构建项目的典型层次结构为:
- src :存放源文件
- classes :存放编译后的字节码文件
- lib :存放第三方的 jar 包
- dist :存放编译后的包,以及发布以后的代码
Ant 的构建文件是 xml 文件。每个构建文件定义一个唯一的项目(Project元素)。每个项目下可定义很多目标(target元素),这些目标之间可以有依赖关系。当执行这类目标时,需要执行他们所 依赖的目标。每个目标中可以定义多个任务,目标中还定义了所要执行的任务序列。Ant在构建目标时必须调用所定义的任务。任务定义了 Ant 实际执行的命令,其任务可分为以下几类:
- 核心任务:Ant 自带任务
- 可选任务:为第三方的任务,需要对应附加的 jar 文件
- 定制任务:用户自定义的任务,为用户自己开发的任务
二、windows 环境搭建
1.Ant 下载
进入 Apache Ant 下载 页面,如下所示,依据平台选择对应的 Ant 文件下载(此处选择 windows zip):

成功下载后,解压到本地文件夹,例如:D:\envConfig\apache-ant-1.9.6,解压后目录结构如下所示:
ant
+--- README, LICENSE, fetch.xml, other text files. // ant 基本信息
+--- bin // 包含一些启动脚本等
|
+--- lib // 包含了 ant 所需的 jar 及其依赖
|
+--- docs // 说明文档、用户手册等
| |
| +--- images // 文档、用户手册中的图片
| |
| +--- manual // 用户手册(必读)
|
+--- etc // xls 相关(创建增强报告,从不同的任务输出;迁移构建文件,避免过时的警告等等)
2.Ant 环境变量配置
在系统变量中添加:ANT_HOME=D:\envConfig\apache-ant-1.9.6,用于启动脚本查找相应的库文件
在path变量中添加:path=%ANT_HOME%\bin;%path%
同时用户需要配置 JDK,JAVA_HOME 主要用于启动后加载 JDK/JRE,关于如何配置 JDK 请参阅 Java学习-001-JDK安装配置
3.Ant 验证
启动命令行窗口输入命令:ant,将获得如下所示的信息提示:
Buildfile: build.xml does not exist!
Build failed
此时,可以说 Ant windows 环境已经配置成功,出现上述提示的原因是,缺失了 Ant 的构建文件 build.xml。若要查看 Ant 的版本,可在命令行窗口输入:ant -version,结果如下所示:
Apache Ant(TM) version 1.9.6 compiled on June 29 2015
至此, Ant学习-001-ant 基础知识及windows环境配置 顺利完结,希望此文能够给初学 ant 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
Ant学习-001-ant 基础知识及windows环境配置的更多相关文章
- Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置
此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...
- 如何学习FPGA?FPGA学习必备的基础知识
如何学习FPGA?FPGA学习必备的基础知识 时间:2013-08-12 来源:eepw 作者: 关键字:FPGA 基础知识 FPGA已成为现今的技术热点之一,无论学生还是工程师都希望 ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...
- C#学习笔记(基础知识回顾)之值传递和引用传递
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
- Quartz学习笔记:基础知识
Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...
- ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...
- cocos2d-x3.0 windows 环境配置
cocos2d-x3.0 windows 环境配置 参考Oo泡泡糖oO的CSDN博文 :http://blog.csdn.net/u010296979/article/details/24273393 ...
随机推荐
- [leetCode][016] Add Two Numbers
[题目]: You are given two linked lists representing two non-negative numbers. The digits are stored in ...
- BZOJ4009: [HNOI2015]接水果
4009: [HNOI2015]接水果 Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果. 由于她已经DT FC 了The big black, 她 ...
- iOS完整学习步骤
一 C语言 1.1基本数据类型和基本运算 1.2 函数 数组 字符串 指针 1.3 预处理指令 1.4结构体 枚举 1.5 文件操作 内存管理 二 Objective - C 2.1 面向对象 2. ...
- 在openGL中绘制图形
点的绘制.: glVertex*():星号表示函数要有后缀 该函数 需要放在glBegin函数和glEnd函数之间,glBegin函数的向量指定绘制图元的类型,而glEnd函数没有参数,例如: glB ...
- 你们以为运营商只是HTTP插点广告而已么?
国内某邮件服务商,近期在某南方地区有大量客户反应登录时出错和异常,于是工作人员进行了一下跟进,发现如下: 首先,邮件服务商登陆页面为普通HTTP协议发送,提交时通过JS进行RSA加密(没错,JS的RS ...
- java web工程之Hibernate
java web添加structs特性后再添加Hibernate特性,这可以通过右键工程->my eclipse出现工具条选中相应的条目,添加相应的属性, 添加完Hibernate后建立与数据库 ...
- Angularjs - 路由 angular-ui-router
注意,使用的路由不是官方的,而是第三方的.因为这个更加强大支持嵌套而且大家都是这样用的 http://www.tuicool.com/articles/zeiy6ff http://www.open- ...
- JavaScript系列:模块化与链式编程
模块化:闭包和和函数作用域(JS没有块级作用域ES6之前)构造模块 var man=function(){ var age=12; return { getYear:function(){ retur ...
- Yii源码阅读笔记(十一)
controller类的render部分,用于渲染视图和布局文件: /** * Returns all ancestor modules of this controller. * 获取当前控制器所有 ...
- 表单序列化 js
function serliaze(form) { //序列化表单 var obj = {}; $.each(form.serializeArray(), function (index) { if ...