`
sbpya
  • 浏览: 605862 次
  • 性别: Icon_minigender_1
  • 来自: 杭州,长沙
社区版块
存档分类
最新评论

Java的Build工具—Ant应用指南(1)

阅读更多

Java的Build工具—Ant应用指南(1)

                                       Java的Build工具—Ant应用指南(1)

本文以最新发布的Ant 1.5.1为例,介绍这款优秀的Build工具的安装配置、基本应用和一些高级话题。最新的Ant下载地址是 http://jakarta.apache.org/ant/

Ant 是一种基于Java的Build工具。理论上来说,它有些类似于C中的make,但比make优越。现在存在的大多数Build工具,如make、 gnumake、nmake、jam等都存在这样或那样的不足,比如依赖于特定的平台、配置文件过于复杂或者对格式无法检查而容易出错等。与这些工具相比 较,Ant的两个特性决定了它是一款优秀的Build工具:

1. 基于Java的实现。具有良好的跨平台性,同时可以通过增加新的Java类来扩展Ant的功能,而无需去了解不同平台上不同的脚本语言。

2.基于XML的配置文件。Ant以XML树来描述Target/Task的关系,文件结构清晰、易读易写,并且利用XML对格式的控制来避免由于配置文件的错误造成的Build操作失败。

安装与配置

Ant的安装非常简单,把从网上下载的jakarta-ant-1.5.1-bin.zip解开到一个目录下即可(以下假定安装在目录D:\jakarta-ant-1.5.1)。接下来需要进行环境变量配置:

SET ANT_HOME=D:\jakarta-ant-1.5.1 //注意是Ant的安装目录,不是bin子目录
SET PATH=%PATH%;%ANT_HOME%\bin;



在配置环境变量之前,请确认已经正确设置了JAVA_HOME系统变量。输入ant命令,看到如下输出说明已成功安装了Ant工具:

Buildfile: build.xml does not exist!
Build failed



提示信息表明在当前目录不存在build.xml配置文件,但这本身已经说明Ant成功运行了。

快速入门

下面用一个最简单也是最经典的例子-HelloWorld来感受一下Ant吧。

//HelloWorld.java
package com.sharetop.antdemo;
public class HelloWorld {
public static void main( String args[] ) {
System.out.println("Hello world. ");
}
}



要让Ant编译这个文件,首先需要编写一个Build配置文件。在一般情况下,这个文件被命名为build.xml。

<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="run" basedir="." >
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="hello_jar" value="hello.jar" />
<target name="init">
<mkdir dir="${dest}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
<target name="run" depends="build">
<java classname="com.sharetop.antdemo.HelloWorld" classpath="${hello_jar}"/>
</target>
</project>



来 看一下这个文件的内容,它描述了以下信息:工程的名字为HelloWorld,工程有四个target,分别是init、compil、build和 run,缺省是run。compile只有一个任务javac,源文件位于src目录下,输出的类文件要放在classes目录下。build的任务是 jar,生成的jar文件为hello.jar,它打包时以classes为根目录。而run则是执行这个HelloWorld类,用hello.jar 作为classpath。这四个target之间有一个依赖关系,这种关系用depends来指定。即如果Target A依赖于Target B,那么在执行Target A之前会首先执行Target B。所以从下面运行缺省Target(run)的输出看,这四个Target的执行顺序是:init→compile→build→run。

       在命令行输入命令:ant,然后运行,可以看到如下输出:

如果配置文件名不是build.xml,比如是build_front.xml,那么,可以使用-buildfile命令参数指定:

G:\myDoc\ant_demo>ant -buildfile build_front.xml



也可以单独执行指定的某个target,比如,只编译不打包执行,可以使用下面输入命令即可:

G:\myDoc\ant_demo>ant compile


在相应的目录下会找到编译出的HelloWorld.class文件。

再看看上面的build.xml配置文件,文件开头定义了3个属性,分别指定了源文件输出路径、类文件输出路径和生成的Jar文件名,后面对这些路径的引用都通过一个${property name}来引用。所以,要注意这样一个原则“目录的定义与目录的引用应该分开”。

分享到:
评论
1 楼 奇林醉 2011-09-15  
ant入门好文章!

相关推荐

    ant说明指南build.xml+java

    ant说明指南ant说明指南ant说明指南ant说明指南

    打包工具 Ant 学习指南

    Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。 Ant就不同了。与基于shell命令的扩展模式不同,Ant用Java的类来扩展。

    ant使用指南.pdf

    在本教程中,您将学习 Ant 这个 Java TM 项目生成工具。由于其灵活性和易用性,Ant 很快在 Java 开发人员中流行开来,因此您有必要了解关于它的更多信息。 在继续学习本教程之前,你不需要具备先前的 Ant 经验或知识...

    Ant使用指南

    我们将首先查看 Ant 生成文件 (build file)的基本结构,并学习如何调用这个工具。我们将逐步完成为一个简单 Java 项目编 写生成文件的步骤,然后考察 Ant 的其他一些有用功能,包括文件系统操作和模式匹配。...

    ANT 快速参考指南

    Ant是一种基于Java和XML的build工具。 ANT 快速参考 http://www.ossez.com/forum.php?mod=viewthread&tid=13457&fromuid=426

    Ant使用详细介绍(中文版)

    Ant 是一个构建工具,它可以帮助我们将项目开发过程中需要完成的各种步骤组织起来,通过一个简易的方式来构建整个项目。Ant 究竟能做什么呢?这取决于 Ant 的任务(Task),Ant 有哪些任务,就能完成哪些工作! Ant...

    Ant介绍以及基本使用指南

    Ant介绍以及基本使用指南,jar,war打包语法,打包的注意事项,及bulid.xml的做成。

    Fortify-SCA-扫描工具指导手册.pdf

    与其他工具集成: Scan with ANt, Makefile ●编译监控器方式: Fortify SCA Build Monitor FORTIFY Fortify SCA扫描的四个步骤 Fortify SCA扫描总共可以分为四个步骤: ●1. Clean:清除阶段: sourceanalyzer -b ...

    Eclipse快速上手指南之使用ANT

    Ant是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译,测试,打包,部署等等一系列任务,大大提高开发效率。如果你现在还没有开始使用Ant,那就要赶快开始学习使用,使自己的开发水平上一个新台阶...

    Hibernate中的Middlegen入门指南

    Hibernate 中的 Middlegen 入门指南是利用 Middlegen 生产 hbm.xml 文件的工具,旨在帮助开发者快速生成 Hibernate 的配置文件。通过本指南,开发者可以快速掌握 Middlegen 的使用方法,并快速生成 Hibernate 的配置...

    gradle 用户指南

    Java工程编译工具类似Ant,Maven

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction.java 13.9.4 设定调查项目控制器类SetSurveyAction.java 13.10 编写配置文件...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    13.9.1 登录控制器类LoginAction.java 13.9.2 注册控制器类RegeditAction.java 13.9.3 设定调查题目控制器类SurveyAction.java 13.9.4 设定调查项目控制器类SetSurveyAction.java 13.10 编写配置文件...

    Maven权威指南 很精典的学习教程,比ANT更好用

    Maven权威指南 Authors Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.) , Juven Xu () Abstract Maven权威指南...

Global site tag (gtag.js) - Google Analytics