ant常用命令

    Ant 的常用任务

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

1. copy 任务

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

Eg1. 复制单个文件: <copy file="file.txt" tofile="copy.txt"/>

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

   <copy todir="../newdir/dest_dir">

            <fileset dir="src_dir"/>

 </copy>

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

 <copy file="file.txt" todir="../other/dir"/>

2. delete 任务

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

Eg1. 删除某个文件: <delete file="photo/amigo.jpg"/>

Eg2. 删除某个目录: <delete dir="photo"/>

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

        <delete includeEmptyDirs="true">

               <fileset dir="." includes="**/*.bak"/>

        </delete>

3. mkdir 任务

创建目录。 eg<mkdir dir="build"/>

4. move 任务

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

Eg1. 移动单个文件: <move file="fromfile" tofile=”tofile”/>

Eg2. 移动单个文件到另一个目录: <move file="fromfile" todir=”movedir”/>

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

        <move todir="newdir">

               <fileset dir="olddir"/>

        </move>

5. echo 任务

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

<echo message="Hello,Amigo" file="logs/system.log" append="true">

利用 Ant 构建和部署 Java 工程

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

1.        利用 Ant javac 任务来编译 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.        使用 Ant java 任务运行 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.        使用 Ant jar 任务生成 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.        使用 Ant war 任务打包 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" "http://www.w3.org/TR/html4/loose.dtd" >
< 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"/>
     <!--  删除build 路径-->
     < target  name ="clean">
        < delete  dir ="build"/>
     </ target >

     <!--  建立build/classes 路径,并编译class 文件到build/classes 路径下-->
     < target  name ="compile"  depends ="clean">
        < mkdir  dir ="${classes}"/>

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

     <!--  打war 包-->
     < target  name ="war"  depends ="compile">
< war  destfile ="${build}/antwebproject.war"  webxml ="WebRoot/WEB-INF/web.xml">
            <!--  拷贝WebRoot 下除了WEB-INF 和META-INF 的两个文件夹-->
     < fileset  dir ="WebRoot"  includes ="**/*.jsp"/>

            <!--  拷贝lib 目录下的jar 包-->
            < lib  dir ="${lib}"/>
            <!--  拷贝build/classes 下的class 文件-->
            < 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 的目录下看一下运行结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值