Ant的入门指导

Ant的使用什么是Apache Ant

Apache Ant是一个基于java的软件构建工具(build tool),理论上它有点类似C/C++的make工具

概述

ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。在实际软件开发中,有很多地方可以用到ant。

开发环境:

System:WindowsJDK:1.6+IDE:eclipseant:1.9.1

优点

ant 是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点: 1、跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性。 2、操作简单:Ant是由一个内置任务和可选任务组成的,用ant任务就像是在dos中写命令行一样。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。 3、维护简单、可读性好、集成简单:由于Ant构建文件 时XML格式的文件,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。

为什么要用ant?

make, gnumake, nmake, jam或其他已有的构建工具里,为什么还需要单独搞这个ant工具呢? 因为前面的这些构建工具都有局限性,Ant的原创作者在开发跨多个平台的软件时无法忍受。

make工具本质上是基于shell: make会评估一些系统依赖,然后才能执行命令。这意味着你可以轻松地使用或编写您正在处理的操作系统的任何程序来扩展这些构建工具。但是,这也意味着你将自己限制在操作系统上,或者至少是Unix类的操作系统类型。

makefile工具本身也是很讨厌的,任何一个曾经用makefile工作的人都会遇到麻烦的tab问题。“由于我在tab前面加了一个空格导致我的命令行总不凑效”,Ant的原创作者说了太多遍了。像Jam这样的工具在很大程度上处理了这个问题,但是仍然要使用和记住它的一些格式。

而Ant是不同的,Ant使用Java类扩展,而不是使用基于shell命令扩展。与编写shell命令不同,配置文件是基于xml的,调用一个目标树来执行各种任务。每个任务由实现特定任务接口的Java对象运行。 Ant去掉了一些shell命令(比如find . -name foo -exec rm {})的功能,但它提供了类似的功能,一个跨平台(work anywhere and everywhere)的能力。如果你真的需要执行这些shell命令,Ant有一个<exec>任务允许根据正在执行的操作系统执行不同的命令。

说白了,Ant工具为了解决跨平台问题。

使用Apache Ant编写一个简单的构建文件

Apache Ant的构建文件是用build.xml编写的。 每个构建文件包含一个项目(project)和至少一个默认目标(target)。目标包含任务(task)。

Projects 一个project包含下面3个属性

属性 描述 name项目名称default在不提供目标时使用的默认目标basedir完成所有路径计算的基本目录。这个属性可能会被预先设置“basedir”属性覆盖。如果该属性和属性值都没有设置,则将使用构建文件build.xml所在的目录路径。

可选地,项目的描述可以由顶级的<description>元素提供。每个项目定义一个或多个目标。目标是您想要执行的一组任务。当启动Ant时,可以选择要执行的目标。当没有目标时,项目的默认值default被使用。

Targets一个目标可以依赖于另外目标,使用depends属性。 例如,您可能有一个用于编译的目标,和一个发布的目标。当你执行发布的目标时不得不先执行编译的目标,所以发布目标取决于编译目标。应该注意的是,Ant的depends属性, 如果它依赖的目标没有执行,而是直接执行当前目标,它也会自动去执行依赖的目标。

Tasks 任务是可以执行的一段代码。 一个任务可以有多个属性(或者参数,如果你喜欢的话)。 属性的值可能包含对属性的引用。这些引用将在任务执行之前解析。 任务有一个共同的结构: <name attribute1="value1" attribute2="value2" ... /> name就是任务的名称,attributeN是属性名,valueN是该属性的值。 所有任务共享一个任务名属性。该属性的值将用于Ant生成的日志消息。

Properties

参考

Apache Ant Introduction

Hello World with Apache Ant

以上就是Ant的入门指导的详细内容,更多请关注其它相关文章!

人若勇敢就是自己最好的朋友

Ant的入门指导

相关文章:

你感兴趣的文章:

标签云: