ant教程详解

c#小王子 c#小王子 2021-10-28 1036 Java


ant教程详解


Ant 是一个 Apache 基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将 Ant 应用到 Java 项目中,让它简化构建和部署操作。


一. 安装与配置


在本文中下载的是 1.7.0 版本。解压到某个目录(例如E:"apache-ant-1.7.0),即可使用。添加系统环境变量:ANT_HOME,该变量指向 Ant 解压后的根目录,在此为 E:"apache-ant-1.7.0。


安装与配置完毕后,读者可以测试一下 Ant 是否可用,首先进入 Ant 的 bin 目录,运行命令 ant –version,若安装和配置成功,则会显示 Ant 版本信息,如下图所示:由上可以看出,读者运行 Ant 的命令时,需要进入到 Ant 的 bin 目录,如何才能让系统自动找到 Ant 呢?这时需要读者在系统环境变量 path 中添加 Ant 的 bin 目录。设置完成后,我们就可以在任何目录(例如 C:"Documents and Settings"AmigoXie 目录)输入 Ant 的命令,来获得命令的运行结果。


二. Ant 的关键元素

Ant 的构件文件是基于 XML 编写的,默认名称为 build.xml。为了更清楚的了解 Ant,在这里编写一个简单的 Ant 程序,用来展现 Ant 的功能,让读者对 Ant 有一个初步的了解。首先在 E 盘下建立一个 build.xml 文件,内容如下:

<?xml version="1.0"?>


<project name="helloWorld">
<target name="sayHelloWorld">
<echo message="Hello,Amigo"/>
</target>
</project>


读者可以进入 E 盘,然后运行 ant sayHelloWorld,可以看到如下的运行结果:其中 sayHelloWorld 为需要执行的任务的名称。如果文件名不为 build.xml,而为 hello.xml 时,读者运行同样的命令时,命令窗口会出现如下错误:


Buildfile: build.xml does not exist!

Build failed


由上面的命令的错误提示可以看出,ant 命令默认寻找 build.xml 文件。若文件名为 hello.xml 时,读者还需要对命令做少许改变,改为:ant –f hello.xml sayHelloWorld、ant –buildf

ile hello.xml sayHelloWorld 或 ant –file hello.xml sayHelloWorld。


接下来开始向读者讲解本节的重点:Ant 的关键元素 project、target、property 和 task。


1. project 元素

project 元素是 Ant 构件文件的根元素,Ant 构件文件至少应该包含一个 project 元素,否则会发生错误。在每个 project 元素下,可包含多个 target 元素。接下来向读者展示一下 project元素的各属性。


1)name 属性

用于指定 project 元素的名称。

2)default 属性

用于指定 project 默认执行时所执行的 target 的名称。

3)basedir 属性

用于指定基路径的位置。该属性没有指定时,使用 Ant 的构件文件的附目录作为基准目录。下面给读者一个简单的例子来展示 project 的各元素的使用。修改 E:"build.xml 文件,修改后的内容如下:


<?xml version="1.0"?>
<project name="projectStudy" default="sayBaseDir" basedir="E:"apache-ant-1.7.0"> 
<target name="sayBaseDir">
<echo message="The base dir is: ${basedir}"/>
</target>
</project>


从上面的内容我们可以看出,在这里定义了 default 属性的值为 sayBaseDir,即当运行 ant命令时,若未指明执行的 target 时,默认执行的 target 的 sayBaseDir,同时还定义了 basedir属性的值为 E:"apache-ant-1.7.0,进入 E 盘后运行 ant 命令,可看到运行的结果,如下图所示:因为设定了 basedir 的值,所以 basedir 属性的值变成了读者设置的值。读者可以自行将 project 元素的 basedir 属性去掉后运行 ant 看看运行结果,此时 basedir 的值变成了 E:",即为 Ant 构件文件的父目录。有的时候,读者可能有这种需求,即想得到某个 project 下所有的 target 的名称,读者可以

通过在 ant 命令里加上-proecthelp 来达到该目的。例如针对上述的例子我们运行 ant –projecthelp,输出结果如下:


Buildfile: build.xml

Main targets:

Other targets:

sayBaseDir

Default target: sayBaseDir


2. target 元素

它为 Ant 的基本执行单元,它可以包含一个或多个具体的任务。多个 target 可以存在相互依赖关系。它有如下属性:


1)name 属性

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


2)depends 属性

用于描述 target 之间的依赖关系,若与多个 target 存在依赖关系时,需要以“,”间隔。Ant 会依照 depends 属性中 target 出现的顺序依次执行每个 target。被依赖的 target 会先执行。


3)if 属性

用于验证指定的属性是否存在,若不存在,所在 target 将不会被执行。


4)unless 属性

该属性的功能与 if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,

所在 target 将会被执行。


5)description 属性

该属性是关于 target 功能的简短描述和说明。下面带领读者来看一个各属性综合使用的例子。修改 E:"build.xml 文件,修改后的内容如

下:


<?xml version="1.0"?>
<project name="targetStudy">
<target name="targetA" 
if="ant.java.version">
<echo message="Java Version: ${ant.java.version}"/>
</target> 
<target name="targetB" depends="targetA" unless="amigo">
<description>
a depend example!
</description> 
<echo message="The base dir is: ${basedir}"/>
</target>
</project>


进入 E 盘后运行 ant targetB,可看到如下图所示的运行结果:


读者分析结果后可以看到,我们运行的是名为 targetB 的 target,因该 target 依赖于 targetA,所以 targetA 将首先被执行,同时因为系统安装了 java 环境,所以 ant.java.version 属性存在,执行了 targetA 这个 target,输出信息:[echo] Java Version: 1.5,targetA 执行完毕后,接着执行 targetB,因为 amigo 不存在,而 unless 属性是在不存在时进入所在的 target 的,由此可知 targetB 得以执行,输出信息:The base dir is: E:"。


3. property 元素

该元素可看作参量或者参数的定义,project 的属性可以通过 property 元素来设定,也可在Ant 之外设定。若要在外部引入某文件,例如 build.properties 文件,可以通过如下内容将其引入:<property file=” build.properties”/>


property 元素可用作 task 的属性值。在 task 中是通过将属性名放在“${”和“}”之间,并放在 task 属性值的位置来实现的。Ant 提供了一些内置的属性,它能得到的系统属性的列表与 Java 文档中 System.getPropertis()方法得到的属性一致,这些系统属性可参考 sun 网站的说明。同时,Ant 还提供了一些它自己的内置属性,如下:


basedir:project 基目录的绝对路径,该属性在讲解 project 元素时有详细说明,不再赘述;

ant.file:buildfile 的绝对路径,如上面的各例子中,ant.file 的值为 E:"build.xml;

ant.version:Ant 的版本,在本文中,值为 1.7.0;

ant.project.name:当前指定的 project 的名字,即前文说到的 project 的 name 属性的值;

ant.java.version:Ant 检测到的 JDK 的版本,在上例运行结果中可看到为 1.5。


下面让读者来看一个 property 元素使用的简单例子。修改 E:"build.xml 文件,内容如下:


<?xml version="1.0"?>
<project name="propertyStudy" default="example">
<property name="name" value="amigo"/>
<property name="age" value="25"/>
<target name="example">
<echo message="name: ${name}, age: ${age}"/>
</target>
</project>


该例的运行结果如下图所示:

由此读者可以看出,通过如下两个语句:


【下载地址】

百度网盘链接:https://pan.baidu.com/s/1uFiRVFuSUCcUxsNP6nwN9g

提取码:7qew


相关文章


使用-JFreeChart来创建基于web的图表

使用-JFreeChart来创建基于web的图表

XStream使用文档

XStream使用文档

WebService发布过程及常见问题

WebService发布过程及常见问题

webpack实战入门进阶调优分享

webpack实战入门进阶调优分享

weblogic调优参数及监控指标

weblogic调优参数及监控指标

weblogic节点管理

weblogic节点管理

weblogic管理控制台概述

weblogic管理控制台概述

weblogic-部署和启动

weblogic-部署和启动

WebLogic-Server-性能及调优-调优-Java-虚拟机

Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。

Velocity用户教程

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。

Velocity用户手册

Velocity 用户手册是帮助页面设计者和内容提供者认识 Velocity 和其简单而功能强大的脚本语言――Velocity 模板语言(VTL)。在手册上的许多例子,都是用 Velocity 插入动态的内容到网页上,但是所有的 VLT 例子都能应用到其他的页面和模板中。


文章热度: 166291
文章数量: 333
推荐阅读

FlashFXP绿色版网盘下载,附激活教程 1782

FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具

Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 1565

firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ

navicat for mysql中文绿色版网盘下载 1623

Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq

火车头采集器(旗舰版)绿色版网盘下载 1707

火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA

Photoshop(CS-2015-2023)绿色中文版软件下载 1824

安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64

知之

知之平台是全球领先的知识付费平台。提供各个领域的项目实战经验分享,提供优质的行业解决方案信息,来帮助您的工作和学习

使用指南 建议意见 用户协议 友情链接 隐私政策 Powered by NOOU ©2020 知之