Ant脚本简介与基础知识

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6624003.html 

一:Ant是什么

Ant相当于Linux环境下的shell脚本,只不过是用xml文档来编写的。我们知道,在linux环境中,可以通过编写shell脚本,封装一系列繁琐而日常需要经常重复的操作。在需要进行这些操作时,只需运行这个脚本就可以批处理这些操作了。Ant脚本也是一样,只不过它一般是为了方便Java项目的编译、运行、测试、打包等工作服务的。

我们知道,日常开发工作中,一个项目除了编码外,还需单元测试、集成测试、系统测试,测试过程中可能会不断修改代码,然后再测试。这样重复而繁琐的过程是十分耗时间的。在程序编译、测试通过后,还需要打包导出,如果之后需要改变了代码,那么这些工作又要重新再做。Ant的产生,就是为了把我们从这些重复而琐碎的工作中解放出来。

二:Ant能干什么

Ant脚本,通过一个xml文件来制定一系列文件的创建删除任务、编译任务、运行任务、测试任务、打包任务等。我们可以通过ant指令执行这个xml脚本,来批处理这些任务,这样就可以实现“一键”完成编码后的编译、运行、测试、打包导出等工作,使我们可以更加专注于代码的编写与质量。

三:Ant的使用

1:安装配置

下载地址:http://ant.apache.org/

安装:解压得到 apache-ant文件夹,这个就是Ant的安装目录了,复制到你想安置的地方即可。

配置:与设置Java运行环境类型:在系统环境变量中添加:ANT_HOME= XX:\XX\apache-ant  (apache-ant所在路径)

在Path环境变量值后面加上:XX:\XX\apache-ant\bin (apache-ant\bin所在路径)

打开cmd,输入 ant ,如果出现以下结果则说明Ant配置成功:

2:编写Ant脚本

一个Ant脚本即可完成至少一个项目的编译、运行、测试、打包等工作。Ant脚本同一命名:build.xml

脚本内容:

1)project 节点:一个脚本相当于一个project,用一个project来统领脚本中的众多操作命令。用这个project对象来指向脚本本身的基本属性

project 元素是 Ant 构件文件的根元素, Ant 构件文件至少应该包含一个 project 元素,否则会发生错误。

● name 属性:用于指定 project 元素的名称。

● default 属性:用于指定 project 默认执行时所执行的 target 的名称。

● basedir 属性:用于指定基路径的位置。该属性没有指定时,使用 build.xml的目录作为基准目录。

2)property节点:属性节点,相当于Ant脚本中的变量,通过属性值来携带具体内容。在每个任务中通过 ${属性名} 访问其属性值,从而获取内容。

Ant 提供了一些内置的属性,它能得到的系统属性的列表与 Java 文档中 System.getProperties() 方法得到的属性一致。Ant 还提供了一些它自己的内置属性:

basedir: project 基目录的绝对路径;

ant.file: buildfile的绝对路径;

ant.version: Ant 的版本信息;

ant.project.name: 当前指定的project的名字;

ant.java.version: Ant 检测到的JDK版本 。

3)target节点:任务节点。一个target可以制定一个或内嵌更多任务。

target为ant的基本执行单元,它可以包含一个或多个具体的单元/任务。多个target 可以存在相互依赖关系,target的执行顺序可以有两种方式控制:一种是依赖,depends属性,AdependsB,则B先执行;另一种就是内嵌:在target A中通过 <ant target="B">命令执行B任务。  

● name 属性:指定 target 元素的名称,这个属性在一个 project 元素中是唯一的。我们可以通过指定 target 元素的名称来指定某个 target 。

● depends 属性:用于描述 target 之间的依赖关系,Ant 会依照 depends 属性中 target 出现的顺序依次执行每个 target ,被依赖的target 会先执行。

● if 属性:用于验证指定的属性是存在,若存在,所在 target 才会被执行。

● unless 属性:该属性的功能与 if 属性的功能正好相反,若不存在,所在 target 将会被执行。

● description 属性:该属性是关于 target 功能的简短描述和说明。

4)copy命令

copy主要用来对文件和目录的复制功能。

5)delete命令

对文件或目录进行删除。

6) mkdir 命令

创建目录。

7)move 命令

移动文件或目录,

8)echo 命令

在控制台输出信息。它包括 message 、 file 、 append 和 level 四个属性。

9)jar 命令标签:打包成jar包并导出

● destfile:打包导出的JAR路径名,即:导出jar包到哪里。

● basedir:被打包的文件,一般是编译通过的文件。

● includes表示被归档的文件类型。

● exchudes表示被排除的文件类型。

● compress表示是否压缩。

(打包命令标签还有war、tgz,解压包命令uzip)

10)javac 命令标签:编译标签

该标签用于编译一个或一组java文件。

● srcdir表示源程序的目录。

● destdir表示class文件的输出目录。

● include表示被编译的文件的模式。

● excludes表示被排除的文件的模式。

● classpath表示所使用的类路径。

● debug表示包含的调试信息。

● optimize表示是否使用优化。

● verbose 表示提供详细的输出信息。

● fileonerror表示当碰到错误就自动停止。

11)java 命令标签:运行标签

该标签用来执行编译生成的.class文件。

● classname 表示将执行的类名。

● jar表示包含该类的JAR文件名。

● classpath所表示用到的类路径。

● fork表示在一个新的虚拟机中运行该类。

● failonerror表示当出现错误时自动停止。

● output 表示输出文件。

● append表示追加或者覆盖默认文件。

12)arg 参数标签:可以用于定义测试用例,向运行程序进行输入,观察输出

通过<arg>元素向其传递命令行参数。

● values 是一个命令参数。

● file 表示一个参数的文件名。

● line 表示用空格分隔的多个参数列表。

● pathref 引用的path(使用path元素节点定义path)的id

● prefix 前缀

● suffix 后缀

13)path节点:表示一个路径

path元素用来表示一个类路径,不过它还可以用于表示其他的路径。

● location 表示一个文件或目录。Ant在内部将此扩展为一个绝对路径。

● refid 是对当前构建文件中某处定义的一个path的引用。

● path表示一个文件或路径名列表。

3:脚本基本结构解析

<?xml version="1.0" encoding="UTF-8"?>

<!--创建project-->
<project default="默认执行的target" basedir=".">

    <!--创建属性标签:携带数据,在下面的target中使用-->
    <property name="XX"  XX="xx" />

    <!--创建任务-->
    <target name="任务名" depends="依赖哪个任务">
                <命令标签  属性=“属性值:指明命令执行的具体内容”/>
    </target>
</project>

4:执行脚本

ant:在当前目录下的build.xml运行Ant,执行默认的target。

ant -buildfile build-test.xml:在当前目录下的build-test.xml运行Ant,执行默认的target。

ant -buildfile build-test.xml targetName:在当前目录下的build-test.xml运行Ant,根据任务名执行一个target。

ant -buildfile build-test.xml -D属性=属性值 targetName:在当前目录下的build-test.xml运行Ant,根据任务名执行一个target并指定其某属性为某值。

时间: 2024-10-22 06:58:27

Ant脚本简介与基础知识的相关文章

学习 shell脚本之前的基础知识

转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要

shell 脚本执行和基础知识

当我们给予shell脚本执行的权限后,就可以测试程序了,假设shell脚本文件为hello.sh放在/root目录下.下面介绍几种在终端执行shell脚本的方法:1.切换到shell脚本所在的目录,执行: [[email protected] home]# cd /root/[[email protected] ~]# ./hello.shhello guys!welcome to my Blog:linuxboy.org! 2.以绝对路径的方式执行: [[email protected] ~]

JavaScript简介及基础知识(1)

1.JavaScript是什么—它是个脚本语言,需要宿主文件,它的宿主文件是html文件. Javascript是一种脚本语言,比HTML要复杂.不过即便你先前不懂编程,也不用担心,因为Javascript写的程序都是以源代码的形式出现的,也就是说你在一个网页里看到一段比较的Javascript代码,恰好你也用得上,就可以直接拷贝,然后放到你的网页中去.正因为可以借鉴.参考优秀网页的代码,所以让Javascript本身也变得非常受欢迎,从而被广泛应用.原来不懂编程的人,多参考Javascript

MongoDB简介及基础知识

MongoDB简介 一.MongDB是一个高性能,开源,无模式的文档型NosQL数据库.主要功能特性: 1.文件存储格式BSON(一种json的扩展) 2.模式自由,数据格式不受限了表的结构 3.支持动态查询 4.支持完全索引 5.支持复制(其主从复制)和故障恢复 6.使用高效的二进制数据存储,包括大型对象 7.自动处理碎片,以支持云计算层次的扩展. 8.支持Java.Ruby.Python.C++.PHP等多种语言 9.内部支持Javascript 二.MongoDB的优势 1.查询速度快 2

学习shell脚本之前的基础知识(一)(学习记录帖)

记录命令历史:我们敲过的命令,linux会有记录,保存在家目录的.bash_history文件中.(备注:只有用户正常退出当前shell时,当前命令才会保存在.bash_history文件中) “  !”的常见应用:(1)!!表示执行上一条支流:(2)!n  (n表示数字),表示执行历史记录中的第n条命令:(3)!字符串   例如 !ta 表示执行命令历史中最近的已ta开头的命令: 支流和文件名补全:按tab键可帮助补充指令.路径或文件名:连按两次tab键,系统可列出所有的指令或文件: 别名:a

第13章 &nbsp; 学习 shell脚本之前的基础知识

1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史.  vim /etc/profile  把 HISTSIZE=1000 改为 HISTSIZE=10000 2. 为什么如果这样设置PS1 (PS1="[\[email protected]\h \W]\$ ")  显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?  应该是 PS1='[\[email protected]\h \W]$  '     (要用单引号) 3. 想办法把当前目录下的文件

什么是软件测试?简介,基础知识和重要性

什么是软件测试? 软件测试是检查实际结果是否与预期结果匹配并确保软件系统无系统的活动.它涉及执行软件组件或系统组件以评估一个或多个感兴趣的属性. 软件测试还有助于识别与实际要求相反的错误,缺口或缺少需求,它可以手动完成,也可以使用自动化工具完成.有些人更喜欢将软件测试称为白盒和黑盒测试. 为什么软件测试上很重要? 测试很重要,因为软件错误可能很昂贵甚至很危险.软件漏洞可能会导致货币和人员损失,历史上充满了这样的例子. 2015年4月,由于软件故障导致金融市场上超过30万交易商受到影响,伦敦彭博终

Ant学习-001-ant 基础知识及windows环境配置

一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.TestNG等搭建持续集成测试开发环境,从而高效.高质量的构建产品. Ant 有以下一些优点: 跨平台,可移植.Ant 是 Java 语言编写的,所以有很好的跨平台性和可移植性,无论是在 windows.Linux,还是 mac. 操作简单. Ant 是由一个内置任务和可选任务组成的,运行时需要一个构

PL/SQL 基础知识简介

1.PL/SQL代码块 PL/SQL 代码块是指令的集合,支持所有的DML,NDS,DBMS_SQL,DDL. :DML 是数据操纵语言(Data Manipulation Language)包括,Insert ,update,delete : DDL是数据定义语言(Data Definition Language ),包括,Alter,create,drop,truncate,Grant,revoke : NDS本地动态SQL(Native Dynamic SQL) 2.PL/SQL代码块结构