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 ...
随机推荐
- Sublime Text 2的快速入门和常用技巧
1. 安装扩展器包管理器Package Control组件 点击菜单 View -> Show Console 调出控制台或者按快捷键 “Ctrl + `”(1左边的符号,可能和QQ拼音输入法和 ...
- Shell 小技巧的问题 mysql -e ,字符串替换telnet命令检测
api_url= #echo ${api_url/:/ }a #echo `echo $api_url|sed -i 's/:/ /' ` #|sed -i 's/:/ /' ` #sed 'as/: ...
- 发生了COMException 异常来自 HRESULT:0x80040228
异常信息: 发生了COMException 异常来自 HRESULT:0x80040228 原因解决方法:窗体中忘记放LicenseControl控件.,加上LicenseControl即可
- Samba结合AD实现域帐号认证的文件服务器
准备一台Windows域控制器, 在Samba服务器上安装Webmin图形化管理工具, samba, krb5-user, winbind. 修改/etc/krb5.conf. [logging] d ...
- Web中的图标
随着时代的变迁与技术的不断的更新,在当今这个时代,Web中的图标(Icons)不再仅仅是局限于<img>.除了<img>直接调用Icons文件之外,还有Sprites(俗称雪碧 ...
- JS对json对象的调用成员2种方式
1,控制台上对json对象的调用 //控制台上对json对象的调用 var a={"a":"1","b":"2"} a. ...
- java数组排序问题:array.sort()是从小到大排序,那么如何从大到小排序?
别告诉我从i=a.length开始打印然后i--!因为数组没变啊,只是打印顺序变了.有木有啥别的方法,除了冒泡插入选择.. nteger [] array=new Integer[]{1,2,3,4, ...
- CentOS6.4下安装TeamViewer8
今天测试selenium调用firefoxdriver,该驱动无法在无界面环境中运行,需要远程连接到服务器进行操作,于是有了下面安装TeamViewer的过程. 先前尝试很多次也没有运行起来TeamV ...
- Python常用函数笔记
1.lambda lambda其实就是一条语句,lambda(x):body.x是lambda函数的参数,参数可以有任意多个(包括可选参数);body是函数体,只能是一个表达式,并且直接返回该表达式的 ...
- css修改,类似elememt.style样式修改
使用!important 语法优先权. .yui-b { margin-left:0px ! important; }