zoukankan      html  css  js  c++  java
  • Ant使用小结

    Ant构建工具使用:

    1、下载ant并解压到硬盘的某个位置
    2、配置ant的环境变量ANT_HOME=D:\commons\apache-ant-1.7.1  path=%ANT_HOME%\bin
    3、测试ant是否安装成功。
    运行cmd命令(小窗口+r可以调出运行窗口键入cmd)进入dos窗口,键入ant回车运行得到
    Buildfile: build.xml does not exist!
    Build failed
    这就说明ant安装成功。


    每个ant脚本(缺省叫build.xml)中设置了一系列任务(target):比如对于一个一般的项目可能需要有以下任务。

    任务1:usage 打印本脚本的帮助信息(缺省)
    任务2:clean <-- init 清空初始化环境
    任务3:javadoc <-- build <-- init 生成JAVADOC
    任务4:jar <-- build <-- init 生成JAR
    任务5:all <-- jar + javadoc <-- build <-- init 完成以上所有任务:jar javadoc


    1.project元素

    project元素是Ant构件文件的根元素,Ant构件文件至少应该包含一个project元素,否则会发生错误。在每个project元素下,可包含多个target元素。接下来向读者展示一下project元素的各属性。

    1)name属性

    用于指定project元素的名称。

    2)default属性

    用于指定project默认执行时所执行的target的名称。

    3)basedir属性

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


    2.target元素

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

    1)name属性

    指定target元素的名称,这个属性在一个project元素中是唯一的。我们可以通过指定target元素的名称来指定某个target。

    2)depends属性

    用于描述target之间的依赖关系,若与多个target存在依赖关系时,需要以“,”间隔。Ant会依照depends属性中target出现的顺序依次执行每个target。被依赖的target会先执行。

    3)if属性

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

    4)unless属性

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

    5)description属性

    该属性是关于target功能的简短描述和说明。

    3. property元素

    该元素可看作参量或者参数的定义,project的属性可以通过property元素来设定,也可在Ant之外设定。若要在外部引入某文件,例如build.properties文件,可以通过如下内容将其引入:<property file=” build.properties”/>

    property元素可用作task的属性值。在task中是通过将属性名放在“${”和“}”之间,并放在task属性值的位置来实现的。

    Ant提供了一些内置的属性,它能得到的系统属性的列表与Java文档中System.getPropertis()方法得到的属性一致,这些系统属性可参考sun网站的说明。

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

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

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

    ant.version:Ant的版本,在本文中,值为1.7.0;

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

    ant.java.version:Ant检测到的JDK的版本.


    常用任务

    在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任务

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

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


    利用Ant构建和部署Java工程

    Ant可以代替使用javac、java和jar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的


    Code
    使用Ant的war任务打包J2EE Web项目
    build.xml文件,其内容如下:
    Code
    运行该build文件,更新目录后,可看到在build目录下生成了antwebproject.war文件,解开后可看到其目录结构如下:

    --META-INF

         --MANIFEST.MF

    --index.jsp

    --WEB-INF

         --lib

                --log4j-1.2.9.jar

         --classes

                --HelloWorld.class

         --web.xml

  • 相关阅读:
    小波变换的引入,通俗易懂
    Leetcode 437. Path Sum III
    Leetcode 113. Path Sum II
    Leetcode 112 Path Sum
    Leetcode 520 Detect Capital
    Leetcode 443 String Compression
    Leetcode 38 Count and Say
    python中的生成器(generator)总结
    python的random模块及加权随机算法的python实现
    leetcode 24. Swap Nodes in Pairs(链表)
  • 原文地址:https://www.cnblogs.com/zhangqifeng/p/1573533.html
Copyright © 2011-2022 走看看