Ant学习实例

1.安装Ant

先从http://ant.apache.org/下载Ant,解压到任一目录下面,比如E:\Lab

然后设置环境变量

ANT_HOME=E:\Lab\apache-ant-1.8.2

path=E:\Lab\apache-ant-1.8.2\bin

最后验证是否安装成功

在dos中输入ant,如果显示

Buildfile: build.xml does not exist! 
Build failed

则安装成功

2.基础元素

project元素

project元素是Ant文件的根元素

project的属性

Attribute

Description

Required

name

项目名称

No

default

当没有指定target时使用的缺省target

Yes

basedir

用于指定基路径的位置。该属性没有指定时,使用 Ant 的构件文件的附目录作为基准目录。

No

target元素

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

Ant会依照depends属性中target出现的顺序(从左到右)依次执行每个target。然而,要记住的是只要某个target依赖于一个target,后者就会被先执行。

<target name="A"/>

<target name="B" depends="A"/>

<target name="C" depends="B"/>

<target name="D" depends="C,B,A"/>

假定我们要执行target D。从它的依赖属性来看,你可能认为先执行C,然后B,最后A被执行。错了,C依赖于B,B依赖于A,所以先执行A,然后B,

然后C,最后D被执行。

一个target只能被执行一次,即时有多个target依赖于它。

若想更好的控制build过程,可以使用if或unless。

if 属性

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

unless 属性

该属性的功能与 if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在 target 将会被执行。

property元素

property元素可看作参量或者参数的定义(即经常使用的变量),project 的属性可以通过 property 元素来设定,也可在 Ant 之外设定。

name是变量的名称 value是变量的值,要用某个变量时使用${name}方式调用。

3.完整示例

创建一个java项目

HelloWorld.java

package com.test;

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world");
}
}

编写build.xml文件

注:build.xml放在和src同级目录,而不是在src下级目录

目录结构是

MyProject <dir> 
|--lib <dir> --库目录 
|--classes <dir> --目的文件目录 
|--src <dir> --源文件目录 
|--doc <dir> --api文档目录 
|--build.xml

<?xml version="1.0" encoding="UTF-8" ?>
<project name="helloWorld" default="run" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="build/classes"/>
<property name="lib" value="lib"></property>
<property name="hello_jar" value="hello1.jar"></property>
<!--初始化 之前执行删除操作-->
<target name="init" depends="clean">
<mkdir dir="${dest}"/>
</target>
<!--编译生成class文件 -->
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"></javac>
</target>
<!--将编译后的class文件打包-->
<target name="build" depends="compile">
<mkdir dir="${lib}"/>
<jar jarfile="${lib}/${hello_jar}" basedir="${dest}"></jar>
</target>
<target name="run" depends="build">
<java classname="com.test.HelloWorld" classpath="${lib}/${hello_jar}"></java>
</target>
<!--删除-->
<target name="clean">
<delete dir="${dest}"></delete>
<delete dir="${lib}"></delete><!-- 是dir 删除目录 ,不是file 删除文件-->
</target>
</project>

整个过程:初始化----编译----打包---放到相应的位置

参考:

http://www.cnblogs.com/philander/articles/1782254.html

http://www.cnblogs.com/elric/archive/2011/03/19/1988840.html

Ant学习实例的更多相关文章

  1. ant学习

    如果在构建文件当中depends后面有多个依赖,而且这多个依赖还相互依赖,那么只会执行被依赖的任务,不会重复执行任务 ant学习

  2. 【转】Ant学习笔记——自己构建Ant编译环境

    自从年初开始用NetBeans6.0,才接触到Ant. 这是今年6月份的一篇Ant学习笔记.安装 1.下载并构建环境.   去官网下载src包和bin包.解压缩它们到同一目录,运行build.bat, ...

  3. Ant学习-002-ant 执行 TestNG 测试用例时 [testng] java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException 解决方案

    上篇文章中概述了 Ant windows 环境的基本配置,此文讲述在初次使用的过程中遇到的问题. 今天通过 ant 执行 TestNG 测试用例时,执行报错,相应的错误信息如下所示: Buildfil ...

  4. Ant学习-001-ant 基础知识及windows环境配置

    一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...

  5. ant 学习与开发

    ant 学习与开发 http://www.blogjava.net/amigoxie/archive/2007/11/09/159413.html

  6. Ant学习笔记

    前言:这段时间在学习Ant,发现这是一个很强大的构建工具.你可能使用了很长一段时间,才发现Ant能做数不完的事.总之,个人觉得,Ant学习门槛低,入门简单,能大概看懂程序,写一些简单的脚本即可,剩下在 ...

  7. Ant学习--简单实例入门

    步骤1.创建工程文件夹名字 F:\Helloworld 步骤2.编写java代码: package com.netease; public class Ant_test { public static ...

  8. Ant学习笔记(1) 基础知识

    Ant Apache Ant 是一个基于 Java的构建工具. 下载Ant google.baidu.Windows用户下载zip格式.解压即可. Windows安装Ant Ant本质上是一个Java ...

  9. Ant学习总结3(很多的属性,用的时候方便查找)

    感谢原作者:http://blog.csdn.net/lipeijs3/article/details/5137160 一.              Ant 与 Makefile : GNU Mak ...

随机推荐

  1. mybatis配置方法

    首先导入mybatis-3.1.1.jar包以及Mysql-connector-java-5.1.6-bin.jar包 新建一个数据库 create database mybatis; use myb ...

  2. linux历史发展

    1.什么是开源? 开源就是软件和源代码都是公开的. 可以修改(完善作者的代码)和创建自己的软件. 2.免费软件不同于自由软件,虽然它是免费的,但他不公布源代码,共享软件与免费软件有点类似,其初起是不收 ...

  3. android 自定义百度地图放大缩小

    自定义实现Android百度地图的缩放图标,需要自定义一个缩放控件,实现效果如下: 这里的缩放效果,实现了点击按钮可以对地图的放大缩小,通过手势放大与缩小也控制缩放图标的可用状态.具体实现如下: zo ...

  4. [置顶] java 枚举

    1. 什么是枚举?枚举就是用来存放一组固定的常量. 2. 枚举有什么作用?一些程序在运行时,它需要的数据不能是任意的,而必须是一定范围内的值:例如性别  男和女. public enum Gender ...

  5. python利用utf-8编码判断中文英文字符(转)

    下面这个小工具包含了判断unicode是否是汉字.数字.英文或者其他字符,全角符号转半角符号,unicode字符串归一化等工作. #!/usr/bin/env python # -*- coding: ...

  6. android AChartEngine源代码

    昨天翻自己曾经下过的apache开源project项目,看到一个AChartEnginee看了一下自带的Demo才意识到这个东西的强大.立刻想把源代码down一份,在CSDN上有人挂5分让人下载,实在 ...

  7. 如何让HTML的编写更具结构性

    首先声明,我不是搞技术的,很多词汇写的不够专业,但作为一枚菜鸟,我站在菜鸟的角度,来讲述我在学习技术的过程中所遇到的问题,和解决的方案. 入门HTML还算简单,无非是先写好固定的三对开闭标签结构:ht ...

  8. Nlog的简单使用

    Nlog是.net平台下的开源日志组件,相当于log4net用法配置更简单.用途可以将日志输出到数据库,文本文件,控制台等.首先引用NLog.dll,顺便也将NLog.xml丢到运行目录准备工作完后, ...

  9. MemberShip使用大全

    比较全面的membership 使用过程 http://www.cnblogs.com/xlb2000/archive/2010/07/31/1788120.html Membership中创建的数据 ...

  10. LightOJ 1317

    Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %lluDescription You probab ...