Ant 学习笔记

烂漫一生 提交于 2020-03-07 06:04:28

ANT简介:

Apache Ant  是一个将软件编译、测试、部署等步骤联系在一起加以优化的一个构建工

具,常用于 Java 环境中的软件开发。Ant  的默认配置文件是 build.xml。

 

下载:

http://ant.apache.org/bindownload.cgi 、

 

环境搭建:

Ant需要搭建运行环境,具体的搭建方法可baidu,google 

 

测试Ant环境是否搭建成功:

windows:运行——>cmd——>ant

看到如下信息:

Buildfile: build.xml does not exist!

Build failed

说明配置成功。

 

Linux: 

直接输入:ant

看到如下信息:

Buildfile: build.xml does not exist!

Build failed

说明配置成功。

 

 ANT配置常用标签简介

<project>标签

project 标签,作为 ANT 的 XML 配置文件的根元素,他拥有以下属性:

name       当前工程的名称

basedir     设置 ant 描述的根路径,一般用“.”表示当前工程目录

default     默认执行 ant 构建时执行的 target。

 

<description>标签

description 标签在工程的构建中没有实际的意思,它是当执行 ant –projecthelp 时候该标

签的内容会被显示出来

 

<property>标签

property 标签用于定义常量,可供 target 的执行中使用。不是必须,推荐使用。属性:

name       变量名称

vale        变量值(还有其他属性,用途不大,需要的时候自己查看 ant 官方文档)

 

<echo>标签

将标签中的数据打印到控制台。方便构建调试的时候知道程序完成了那部分功能。

 

<delete>标签

该标签用于删除一个文件或一组文件,其属性如下: 

 file  表示要删除的文件。

 dir  表示要删除的目录。

 includeEmptyDirs  表示指定是否要删除空目录,默认值是删除。

 failonerror              表示指定当碰到错误是否停止,默认值是自动停止。

 verbose      表示指定是否列出所删除的文件,默认值为不列出。

 

<mkdir>标签

创建一个目录,如果他的父目录不存在,也会被同时创建。其属性如下:

dir           需要创建的文件路径,该路径相对于 project 标签中的 basedir 指定的目录。

 

<copy>标签

该标签用于文件或文件集的拷贝,其属性如下:

file 源文件。

tofile 目标文件。

todir   目标目录。

overwrite 指定是否覆盖目标文件,默认值是不覆盖。

includeEmptyDirs  指定是否拷贝空目录,默认值为拷贝。

failonerror              指定如目标没有发现是否自动停止,默认值是停止。

verbose    指定是否显示详细信息,默认值不显示。

 

<copydir><copyfile>标签

用于复制一个文件夹的所有文件(或文件)到另一个文件夹(或文件),属性如下:

src           源文件目录

dest        目标文件目录

 

<fileset>标签

fileset 标签用于定义一组文件,并通常表示为<fileset>元素。不过,许多 ant 任务构建成

了  隐式的 fileset,这说明他们支持所有的 fileset 属性和嵌套元素。以下为 fileset  的属性:

dir  表示 fileset  的基目录。

casesensitive    如果为 false,那么匹配文件名时,fileset 不是区分大小写的,默认 true.

defaultexcludes  用来确定是否使用默认的排除模式,默认为 true。

excludes          是用逗号分隔的需要派出的文件模式列表。

excludesfile     表示每行包含一个排除模式的文件的文件名。

includes          是用逗号分隔的,需要包含的文件模式列表。

includesfile      表示每行包括一个包含模式的文件名。

 

<unjar><unzip><unwar><untar>标签

都是用于解压文件。解压 jar 用 unjar,解压 zip 用 unzip,以此类推。属性:

dest  解压目标目录,相对于 project 标签中 basedir 目录,也可是完整路径。

src  待解压的文件。

encoding         解压时采用的字符编码格式。

 

<compilerarg>标签

用于在 javac 标签用,指定 javac 编译时采用的编码

 

<classpath>标签

用于在 javac 标签中,指定编译时使用的 ClassPath,不须深究,有兴趣研究官方文档。

 

<javac>标签

该标签用于编译一个或一组 java 文件,其属性如下:

srcdir 源程序的目录。

destdir class 文件的输出目录。

include            被编译的文件的模式。

excludes            被排除的文件的模式。

classpath        所使用的类路径。也可以通过在标签内定义<classpath>标签定义。

debug 包含的调试信息。

optimize          是否使用优化。

verbose         提供详细的输出信息。

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

 

<jar>标签

该标签用来生成一个 JAR 文件,其属性如下:

destfile     生成 JAR 文件名。

basedir     被归档的文件名。

includes   别归档的文件模式。

exchudes 被排除的文件模式。

 

<target>标签

一个项目标签下可以有一个或多个 target 标签。一个 target 标签可以依赖其他的 target

标签。例   如,有一个 target 用于编译程序,另一个 target 用于声称可执行文件。在生成可执

行文件之前必 须先编译该文件,因策可执行文件的 target 依赖于编译程序的 target。Target

的所有属性如下:

name 表示标明,这个属性是必须的。

depends          表示依赖的目标。

if  表示仅当属性设置时才执行。

unless 表示当属性没有设置时才执行。

description        描述。

 

Ant 的 depends 属性指定了 target 的执行顺序。Ant 会依照 depends 属性中 target 出现顺

序依次执行 每个 target。在执行之前,首先需要执行它所依赖的 target。程序中的名为 run

的 target 的  depends 属性 compile,而名为 compile 的 target 的 depends 属性是 prepare,所以

这几个 target 执    行的顺序是 prepare->compile->run。一个 target 只能被执行一次,即使有多

个 target 依赖于它。如果没有 if 或 unless 属性 target 总 会被执行。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!