Chinaunix首页 | 论坛 | 博客
  • 博客访问: 366469
  • 博文数量: 100
  • 博客积分: 2586
  • 博客等级: 少校
  • 技术积分: 829
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-09 15:20
个人简介

我是一个Java爱好者

文章分类

全部博文(100)

文章存档

2014年(2)

2013年(7)

2012年(2)

2010年(44)

2009年(28)

2008年(17)

我的朋友

分类: Java

2009-06-20 14:27:41

1.ANT_HOME:ant的安装目录;   
2.JAVA_HOME:JDK的安装目录;  
3.PATH:把%ANT_HOME%/bin目录添加到PATH变量中,以便从命令行下直接运行ant;  

 

二.创建build.xml文件:  
1. 每个工程都对应一个build.xml文件,这个文件包含了与这个工程有关的路径信息和任务;  
2. 每个build.xml文件都包含一个project和至少一个target元素;  
3. target元素中包含一个或多个任务元素,任务是一段可执行代码,ant提供了内置任务集,用户也可开发自己的任务元素;  
4. 最常用的构建工程的ant内置任务描述有:   
5. property:设置name/value形式的属性;   
6. mkdir:创建目录;   
7. copy:拷贝文件或文件夹;  
8. delete:删除文件或文件夹;   
9. javac:编译Java源文件:   
10. war:为web应用打包;   
11. javadoc:生成JAVA文档;   
12. jar:打包文档;   
13. java:运行java类;  

 

三.build.xml元素简介:  
1. 根元素"project":;  
2. target元素:;  
3. property元素:;另:   ,以上代码设置了一个系统 环境属性env,通过它可以访问系统环境变量,${env.CATALINA_HOME}代表了CATALINA_HOME系统环境变量;  
4. mkdir元素:,如果路径内容以"/","\"或"c:\"之类开始,就表示绝对路径,否则表示相对路径,相对路径的基路径取决于project元素的basedir属性;  
5. copy元素:fileset>copy>(对于表示需要拷贝WEB-INF目录下所有的文件,子目录及子目录下的文件,如果是表示只拷贝WEB-INF目录下所有的文件,不包含子目录及子目录下的文件);  
6. javac元素:用来编译Java源程序,javac>;  
7. war元素: war>;  
8. echo元素: 它的作用与Dos的echo命令相似,用于向控制台回显文本,文本内容echo>;  
9. jar元素: jar>;  
10.javadoc元素: javadoc>;  


四.运行Ant:  
1. 直接运行ant,如果不带任何参数,ant会在当前路径下搜索build.xml文件,如果找到,就运行project元素的default属性指定的target;  
2. 带参数执行ant:ant [-buildfile build.xml文件路径 [target名称]];  
五.使用习惯:  
1. target一般分为:  
1) usage: 打印本脚本的帮助信息(缺省);  
2) init: 初始化信息,变量等;  
3) build(or compile): 编译;  
4) javadoc: 生成Java API文档;  
5) jar: 将生成文件打包成Jar包;  
6) war: 将生成文件打包成war包(web应用)  
7) clean: 清除过程文件,目录;  
8) all: 全部任务执行;  
2. Ant在项目中使用时的一般目录结构:  
+-dist          //放置编译,打包后的最终文件(classes文件,jar包,war包)  
+-src         
    +-package         //放置java源文件  
    +-webroot        //jsp源文件及相关配置文件  
+-build             //放置编译后的文件  
+-lib               //放置编译所需要的相关类文件(jar包)  
+-doc              //放置生成的API文档  

 

新建一个Java项目为HelloAnt,根目录名称就是HelloAnt,根目录包含build.xmlsub.xml

项目包含一个src子目录,src中包含一个源文件HelloAnt.java

文件内容如下:

HelloAnt

public class HelloAnt {

 

       public static void main(String[] args) {

              System.out.println("Hello Ant!");

       }

}

 

build.xml

default="jar" name="Project HelloAnt">

   

 

    name="base.dir" value="."/>

    name="src.dir" value="src"/>

    name="build.dir" value="classes"/>

    name="dist.dir" value="dist"/>

    name="user.name" value="Wxb_nudt"/>

    id="myclasspath">

        location="${build.dir}"/>

   

 

    name="init" description="初始化编译工作">

        dir="${build.dir}"/>

        dir="${dist.dir}"/>

       

   

 

    name="build" depends="init" description="编译源文件">

        srcdir="${src.dir}" destdir="${build.dir}"/>

        todir="${build.dir}">

            dir="${src.dir}">

                name="**/*.java"/>

           

       

   

   

    name="jar" depends="build" description="打包class文件和源代码">

        destfile="${dist.dir}/HelloAnt-${DSTAMP}.jar" basedir="${build.dir}">

       

        name="Built-By" value="${user.name}"/>

       

       

        destfile="${dist.dir}/HelloAnt-src-${DSTAMP}.jar" basedir="${src.dir}"/>      

   

   

    name="run" depends="build" description="运行HelloAnt的main函数">

        classpathref="myclasspath" classname="HelloAnt" fork="true"/>

   

 

    name="clean" description="清除编译过程中创建的目录">

        dir="${build.dir}"/>

        dir="${dist.dir}"/>

   

   

    name="copy" description="将源文件夹中的java文件拷贝到build文件夹">

        todir="${build.dir}">

            dir="${src.dir}">

                name="*.java"/>

           

       

        message="copy file finished!"/>

   

   

    name="CallSub" description="调用另一个sub.xml文件中的目标">

        antfile="sub.xml" target="showMessage" inheritAll="false">

            name="message" value="Hello from parent build"/>

       

   

 

 

sub.xml

default="showMessage">

name="showMessage">

message="Message=${message}"/>

 

运行结果如下:

输入ant

Buildfile: D:\eclipse301\workspace\HelloAnt\build.xml

init:

    [mkdir] Created dir: D:\eclipse301\workspace\HelloAnt\classes

    [mkdir] Created dir: D:\eclipse301\workspace\HelloAnt\dist

build:

    [javac] Compiling 1 source file to D:\eclipse301\workspace\HelloAnt\classes

jar:

      [jar] Building jar: D:\eclipse301\workspace\HelloAnt\dist\HelloAnt-20050518.jar

      [jar] Building jar: D:\eclipse301\workspace\HelloAnt\dist\HelloAnt-src-20050518.jar

BUILD SUCCESSFUL

Total time: 3 seconds

输入ant run

Buildfile: D:\eclipse301\workspace\HelloAnt\build.xml

init:

build:

run:

     [java] Hello Ant!

BUILD SUCCESSFUL

Total time: 2 seconds

输入ant copy

Buildfile: D:\eclipse301\workspace\HelloAnt\build.xml

copy:

     [copy] Copying 1 file to D:\eclipse301\workspace\HelloAnt\classes

     [echo] copy file finished!

BUILD SUCCESSFUL

Total time: 1 second

输入ant CallSub

Buildfile: D:\eclipse301\workspace\HelloAnt\build.xml

CallSub:

showMessage:

     [echo] Message=Hello from parent build

BUILD SUCCESSFUL

Total time: 922 milliseconds

输入ant clean

Buildfile: D:\eclipse301\workspace\HelloAnt\build.xml

clean:

   [delete] Deleting directory D:\eclipse301\workspace\HelloAnt\classes

   [delete] Deleting directory D:\eclipse301\workspace\HelloAnt\dist

BUILD SUCCESSFUL

Total time: 985 milliseconds

阅读(915) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-08-24 13:54:16

hao

chinaunix网友2011-08-24 13:54:10

hao