Chinaunix首页 | 论坛 | 博客
  • 博客访问: 261010
  • 博文数量: 82
  • 博客积分: 2477
  • 博客等级: 大尉
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-06 23:24
文章分类

全部博文(82)

文章存档

2013年(1)

2012年(3)

2011年(15)

2010年(36)

2009年(27)

分类: Java

2010-01-19 17:18:25

同时,Ant还提供了一些它自己的内置属性,如下:

basedirproject基目录的绝对路径,该属性在讲解project元素时有详细说明,不再赘述;

ant.filebuildfile的绝对路径,如上面的各例子中,ant.file的值为E:"build.xml

ant.versionAnt的版本,在本文中,值为1.7.0

ant.project.name:当前指定的project的名字,即前文说到的projectname属性的值;

ant.java.versionAnt检测到的JDK的版本,在上例运行结果中可看到为1.5

下面让读者来看一个property元素使用的简单例子。修改E:"build.xml文件,内容如下:

xml version="1.0"?>
<project name="propertyStudy" default="example">
<property name="name" value="amigo"/>
<property name="age" value="25"/>
<target name="example">
        
<echo message="name: ${name}, age: ${age}"/>
target>
project>

该例的运行结果如下图所示:
   

由此读者可以看出,通过如下两个语句:

我们设置了名为nameage的两个属性,这两个属性设置后,读者在下文中可以通过${name}${age}分别取得这两个属性的值。

三.             Ant的常用任务

Ant工具中每一个任务封装了具体要执行的功能,是Ant工具的基本执行单位。在本小节中,主要引导读者来看下Ant的常用任务及其使用举例。

1.       copy任务

该任务主要用来对文件和目录的复制功能。举例如下:

Eg1.复制单个文件:

Eg2.对文件目录进行复制:

  

           

 

Eg3. 将文件复制到另外的目录:

 

2.       delete任务

对文件或目录进行删除,举例如下:

Eg1. 删除某个文件:

Eg2. 删除某个目录:

Eg3. 删除所有的备份目录或空目录:

       

              

       

3.       mkdir任务

创建目录。eg

4.       move任务

移动文件或目录,举例如下:

Eg1. 移动单个文件:

Eg2. 移动单个文件到另一个目录:

Eg3. 移动某个目录到另一个目录:

       

              

       

5.       echo任务

该任务的作用是根据日志或监控器的级别输出信息。它包括messagefileappendlevel四个属性,举例如下:

四.             利用Ant构建和部署Java工程

Ant可以代替使用javacjavajar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的。下面来看几个知识点。

1.       利用Antjavac任务来编译java程序

Antjavac任务用于实现编译Java程序的功能。下面来看一个简单的例子:

首先我们建立名为antstudyJava工程,建立src目录为源代码目录,在src目录下建立HelloWorld.java这个类文件。该类文件的内容如下:

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

   同时在antstudy工程的根目录下建立build.xml文件,在该文件中编译src目录下的java文件,并将编译后的class文件放入build/classes目录中,在编译前,需清除classes目录,该文件的内容如下:

xml version="1.0"?>
<project name="javacTest"default="compile" basedir=".">
    
<target name="clean">
       
<delete dir="build"/>
    
target>

    
<target name="compile" depends="clean">
       
<mkdir dir="build/classes"/>
    
<javac srcdir="src" destdir="build/classes"/>
    
target>
project>

    运行该build.xml文件,可在工程中看到新增了build/classes目录,并在该目录中生成了编译后的HelloWorld.class文件。

2.       使用Antjava任务运行Java程序

Ant中可以使用java任务实现运行Java程序的功能。下面在1的例子中进行如下的修改,修改后的build.xml文件的内容如下:

xml version="1.0"?>
<project name="javaTest" default="jar" basedir=".">
    
<target name="clean">
       
<delete dir="build"/>
    
target>

    
<target name="compile" depends="clean">
       
<mkdir dir="build/classes"/>
      
<javac srcdir="src" destdir="build/classes"/>
    
target>

    
<target name="run" depends="compile">
       
<java classname="HelloWorld">
           
<classpath>
              
<pathelement path="build/classes"/>
           
classpath>
       
java>
    
target>
project>

    运行该build.xml文件,可在控制台看到HelloWorldmain方法的输出。

3.       使用Antjar任务生成jar文件

读者可以在上例的基础上更进一步,来生成jar包,可在run这个target下再加上如下target

<target name="jar" depends="run">
<jar destfile="helloworld.jar" basedir="build/classes">
           
<manifest>
              
<attribute name="Main-class" value="HelloWorld"/>
           
manifest>
       
jar>
target>

此时将antprojectdefault属性设置为jar,同时运行该build.xml文件,运行完毕后,可看到在工程目录下生成了一个jarHelloWorld.jar

4.       使用Antwar任务打包J2EE Web项目

建立一个J2EE Web工程,其目录结构如下图所示:

其中src为源代码目录,WebRoot为各jsp存放目录,lib为工程的包目录。在antwebproject工程目录下建立了build.xml文件,该文件为该工程的Ant构件文件。读者可以src目录下放入在前续例子中开发的HelloWorld.java文件,并在WebRoot下建立index.jsp文件,其内容很简单,就是输出Hello信息,代码如下所示:

<% @ page language="java" contentType="text/html; charset="UTF-8" pageEncoding="UTF-8"%>
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
<html>
    
<head>
       
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
       
<title>ant打包测试title>
    
head>
    
<body>
       Hello,Ant
    
body>
html>

   接下来编写build.xml文件,其内容如下:

xml version="1.0"?>
<project name="antwebproject"  default="war"basedir=".">
 
<property name="classes" value="build/classes"/>
    
<property name="build"value="build"/>
    
<property name="lib"value="WebRoot/WEB-INF/lib"/>
    

    
<target name="clean">
       
<delete dir="build"/>
    
target>

    

    
<target name="compile" depends="clean">
       
<mkdir dir="${classes}"/>

       
<javac srcdir="src" destdir="${classes}"/>
    
target>

    

    
<target name="war" depends="compile">
<war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml">
           

    
<fileset dir="WebRoot" includes="**/*.jsp"/>

           

           
<lib dir="${lib}"/>
           

           
<classesdir="${classes}"/>
       
war>
    
target>
project>

    target的作用在内容中已经进行说明,在此不再赘述。运行该build文件,更新目录后,可看到在build目录下生成了antwebproject.war文件,解开后可看到其目录结构如下:

--META-INF

     --MANIFEST.MF

--index.jsp

--WEB-INF

     --lib

            --log4j-1.2.9.jar

     --classes

            --HelloWorld.class

     --web.xml

     读者可以将该war包拷贝到Tomcat的目录下看一下运行结果。

五.             总结

在本文中,笔者由浅至深详细描述了Ant的安装与配置、关键元素和常用任务。并通过实例讲述了Ant在我们Java项目中的应用,讲述了编译、运行java程序,以及打jar包、war包等知识,引领读者进入Ant的奇妙世界。在本文中可以看到,Ant在自动构建和部署Java程序方面方便易用,而且非常灵活,不失为我们Java开发者的绝佳帮手

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