自动构建工具Ant深入剖析(一) 配置环境及初步使用

来源:互联网 发布:excel实时更新数据 编辑:程序博客网 时间:2024/05/22 03:21

Ant 是什么?

Apache Ant 是一个基于 Java 的生成工具。据最初的创始人 James Duncan Davidson 介绍,这个工具的名称是 another neat tool(另一个整洁的工具) 的首字母缩写。


Ant的作用:

生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过程变得更加复杂,确保在每次生成期间都使用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本,这就变得更加重要.


Ant的优势:

Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。目前的最新版本为:Ant 1.8.4。  既然我们已经有了make, gnumake, nmake, jam以及其他的build工具为什么还要要一种新的build工具呢?因为Ant的原作者在多种(硬件)平台上开发软件时,无法忍受这些工具的限制和不便。类似于make的工具本质上是基于shell(语言)的:他们计算依赖关系,然后执行命令(这些命令与你在命令行敲的命令没太大区别)。这就意味着你可以很容易地通过使用OS特有的或编写新的(命令)程序扩展该工具;然而,这也意味着你将自己限制在了特定的OS,或特定的OS类型上,如Unix.

Ant就不同了。与基于shell命令的扩展模式不同,Ant用Java的类来扩展。(用户)不必编写shell命令,配置文件是基于XML的,通过调用target树,就可执行各种task。每个task由实现了一个特定Task接口的对象来运行。

Ant 定义生成文件之间的依赖关系,它使用跨平台的 Java 类。使用 Ant,您能够编写单个生成文件,这个生成文件在任何 Java 平台上都一致地操作(因为 Ant 本身也是使用 Java 语言来实现的),这就是 Ant 最大的优势


Ant生成文件剖析:

Ant 没有定义它自己的自定义语法;相反,它的生成文件是用 XML 编写的。存在一组 Ant 能够理解的预定义 XML 元素,而且还可以定义新的元素来扩展 Ant 的功能。每个生成文件由单个 project 元素组成,该元素又包含一个或多个 target 元素。一个目标(target)是生成过程中已定义的一个步骤,它执行任意数量的操作,比如编译一组源文件。并且这些操作本身是由其他专用任务标签执行的然后这些任务将根据需要被分组到各个 target 元素中。一次生成过程所必需的所有操作可以放入单个 target 元素中,但是那样会降低灵活性。将那些操作划分为逻辑生成步骤,每个步骤包含在它自己的 target 元素中,这样通常更为可取。这样可以执行整体生成过程的单独部分,却不一定要执行其他部分。

例如,通过仅调用某些目标,您可以编译项目的源代码,却不必创建可安装的项目文件

顶级 project 元素需要包含一个 default 属性,如果在 Ant 被调用时没有指定目标,这个属性将指定要执行的目标。然后需要使用 target 元素来定义该目标本身。


下面是一个最基本的生成文件:

<?xml version="1.0"?>  <project default="init">  <target name="init">   </target></project>

Ant基本使用方式:

     1. 配置环境变量:

         ANT_HOME: C:\ant-1.8              -----> Ant的安装/解压目录路径

         PATH后追加: C:\ant-1.8\bin       ------>Ant中的BIN目录路径       

     2. 确认环境变量配置是否成功

         打开CMD窗口,然后输入命令:  ant:

         看到如下显示:

        

     由于Ant构建时需要默认有build.xml文件,因此有如上的提示,至此,说明Ant的环境已经配置成功.


3. 使用Ant创建一个名为HelloWorld的文件夹:

 首先需要编辑build.xml:

      

<?xml version="1.0"?>  <project default="init">  <target name="init">    <mkdir dir="HelloWorld">  </target></project>


然后切换到build.xml文件所在的目录,输入ant,若有如下提示,则创建文件夹成功:

(init 部分相当于 日志的输出)

        

 4. 也可以使用ant创建多级嵌套的文件目录

  只需要在build.xml文件中进行修改:

   

<?xml version="1.0"?>  <project default="init">  <target name="init">    <mkdir dir="HelloWorld\a\b\c"/>  </target></project>

 

5. 删除如上的多级目录:

<?xml version="1.0"?>  <project default="init">  <target name="init">    <delete dir="HelloWorld"/>  </target></project>

注意:此处路径只用输入最高级目录路径,这也正是ANT工具的强大之处:

  Java中如果要删除目录,除非该目录为空才可以删除,否则就要逐步进行删除.

  而使用Ant工具,则可以直接删除含有子目录的文件夹.






原创粉丝点击