下载ant包,解压版,解压到某目录后配置环境变量即可,这里不在赘述。配置成功cmd ant-version,显示ant版本即OK。

    
     ant是Apache的跨平台的构建工具,他可以实现项目的自动构建和部署等功能。
 
    ant最主要就是build.xml文件,这个文件一般放到项目的根目录中,和src同级,当然可以取其他名字,默认为build.xml。
    cmd到项目目录下,执行命令ant即可。如果为hello.xml,执行ant -f hello.xml 或ant -file hello.xml或ant -buildfile hello.xml
 
    build.xml中的配置
 
    根元素为<project>元素,name属性指定project的名称,default属性指定默认执行target的名称,basedir属性用于指定基路径的位置,该属性没有指定时,使用ant的构建文件的附属目录作为基准目录。若想得到所有target的名称,可以加上参数-projecthelp。
  1. <?xml version="1.0"?>
  2. <projectname="projectStudy"default="sayBaseDir"basedir="E:"apache-ant-1.7.0">
  3. <targetname="sayBaseDir">
  4. <echomessage="The base dir is: ${basedir}"/>
  5. </target>
  6. </project>
    target元素是ant的基本执行单元,它可以包含一个或多个任务。多个target相互依存,用depends属性控制。
        name属性:target元素的名称,在project中唯一。
        depends属性:用于描述target之间的依赖关系,若多个target共存用逗号隔开。ant会按照depends中出现的顺序来执行。
        if属性:验证target中某个属性是否存在,不存在就不执行。
        unless属性:与if属性相反,用于验证指定的属性是否存在,若不存在target将执行。
        description属性:target属性的简短描述和说明。
  1. <?xml version="1.0"?>
  2. <projectname="targetStudy">
  3. <targetname="targetA"if="ant.java.version">
  4. <echomessage="Java Version: ${ant.java.version}"/>
  5. </target>
  6. <targetname="targetB"depends="targetA"unless="amigo">
  7. <description>
  8. a depend example!
  9. </description>
  10. <echomessage="The base dir is: ${basedir}"/>
  11. </target>
  12. </project>
        property元素,该元素为参数的参量或者参数的定义,project的属性可以通过property元素来设定,也可以在ant之外设定,一般都在ant之外使用properties元素设定,然后用ant引入文件。<property file="build.properties"/>。property元素可以用作task的属性值,存在${}里,并放到task的位置来实现。ant提供一些内置属性,和System.getprerties()方法得到的参数相同,这些属性可以参照sun网站的说明。
            basedir:project基项目的绝对路径。
            ant.file:buildpath的绝对路径。
            ant.version:ant的版本。
            ant.project.name:当前指定的project的名字,即project的name。
            ant.java.version:ANT检测到的jdk的版本。
        
    ant的常用任务:
        copy任务:文件和目录的复制。
        delete任务:文件或目录的删除。
        mkdir任务:创建目录。
        move任务:移动文件或目录。
        echo任务:根据日志或者监控级别输出信息。
        编译、运行、生成jar文件、生成war文件。
 
        copy任务:
            copy单个文件:<copy file="file.txt" tofile="copy.txt"/>
            复制文件目录:
                <copy todir="../newdir/dest_dir">
                    <fileset dir="src_dir"/>
                </copy>
            将文件复制到另外的目录:
                <copy file="a.txt" todir="../newdir/dest_dir"/>
        delete任务:
            删除单个文件:<delete file="photo/addd.jpg"/>
            删除某个目录:<delete dir="photo"/>
            删除所有备份目录和空目录:
                <delete includeEmptyDirs="true">
                        <fileset dir="." includes="**/*.bak"/>
                </delete>
        mkdir任务:
            创建文件夹:<mkdir dir="build"/>
        move任务:
            移动单个文件:<move file="fromfile" tofile="tofile"/>
            移动单个文件到另一目录:<move file="fromfile" todir="movedir"/>
            移动某个目录到另一目录:
                <move todir="movedir">
                        <fileset dir="olddir"/>
                </move>
        echo任务:
            根据日志或监控器的级别输出信息。包含message、file、append和level四个属性,举例如下:
            <echo message="Hello,Amigo" file="logs/system.log' append="true" />     
        javac编译文件:
            <javac srcdir="src" destdir="build/classes"/>
  1. <?xml version="1.0"?>
  2. <projectname="javacTest"default="compile"basedir=".">
  3. <targetname="clean">
  4. <deletedir="build"/>
  5. </target>
  6. <targetname="compile"depends="clean">
  7. <mkdirdir="build/classes"/>
  8. <javacsrcdir="src"destdir="build/classes"/>
  9. </target>
  10. </project>
        java运行文件:
            <java classname="HelloWorld">
                <classpath>
                        <pathelement path="build/classes"/>
                </classpath>
            </java>
  1. <?xml version="1.0"?>
  2. <projectname="javaTest"default="jar"basedir=".">
  3. <targetname="clean">
  4. <deletedir="build"/>
  5. </target>
  6. <targetname="compile"depends="clean">
  7. <mkdirdir="build/classes"/>
  8. <javacsrcdir="src"destdir="build/classes"/>
  9. </target>
  10. <targetname="run"depends="compile">
  11. <javaclassname="HelloWorld">
  12. <classpath>
  13. <pathelementpath="build/classes"/>
  14. </classpath>
  15. </java>
  16. </target>
  17. </project>
        打jar包:
  1. <targetname="jar"depends="run">
  2.     <jardestfile="helloworld.jar"basedir="build/classes">
<manifest>
<attributename="Main-class"value="HelloWorld"/>
</manifest>
</jar>
  1. </target>
        打war包:
  1. <!-- 打war包-->
  2. <targetname="war"depends="compile">
  3. <wardestfile="${build}/antwebproject.war"webxml="WebRoot/WEB-INF/web.xml">
  4. <!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个文件夹-->
  5. <filesetdir="WebRoot"includes="**/*.jsp"/>
  6.                    <!-- 拷贝lib目录下的jar包-->
                    <lib dir="${lib}"/>
                     <!-- 拷贝build/classes下的class文件-->
                     <classesdir="${classes}"/>
  7.            </war>
  8. </target>
 
 
 
 
 
 
 
 
        

ant用法的更多相关文章

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

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

  2. Ant Design中getFieldDecorator方法的特殊用法(小bug)

    记录Ant Design中getFieldDecorator方法的特殊的一个用法 了解Ant Design表单的小伙伴都知道,getFieldDecorator在大部分情况下是用来绑定一个控件的,即像 ...

  3. Ant Design 表单中getFieldDecorator、getFieldValue、setFieldValue用法

    Ant Design 表单中getFieldDecorator.getFieldValue.setFieldValue用法 一.getFieldDecorator getFieldDecorator是 ...

  4. Ant Design Pro中Transfer穿梭框的实际用法(与后端交互)

    Ant Design Pro中Transfer穿梭框的实际用法(与后端交互) 该控件的属性以及属性的作用在ADP的官方文档中都有介绍,但没有讲如何与后端交互,本文旨在讲解该控件与后端的交互. Ant ...

  5. 【测试技术】ant里面mapper的详细用法

    ant里面mapper标签是和fileset配合使用的,目的就是把fileset取出的文件名转成指定的样式.其实看懂官方文档后,感觉真心没啥好写的.但是还是写一下把. 1.<mapper typ ...

  6. 【测试技术】ant中的for循环用法

    有的时候,我们希望ant中也能类似脚本语言一样进行for循环,以实现一些重复性工作.由于ant核心包并未提供此功能,所以需要下载一个扩展包扔到ant的lib目录下去.详细步骤如下: 1.下载核心包:a ...

  7. Ant :DataType

    DataType patternset fileset selector filelist path regexp Ant datatype Ant中,除了Property可以做为Task执行时使用的 ...

  8. iOS -Swift 3.0 -for(循环语句用法)

    // // ViewController.swift // Swift-循环语句 // // Created by luorende on 16/12/08. // Copyright © 2016年 ...

  9. Java构建工具Ant小记(一)

    Ant简介 Ant是基于java的构建工具.理论上来说它类似与make工具,但是却克服了make的一些固有的缺陷. 传统的Make是基于操作系统shell的构建工具,虽然也可以基于工作的os对make ...

随机推荐

  1. CentOS 7 安装中网络设置111

    如果在安装过程中需要使用网络,需要启动网卡,默认是DHCP 点击configure进入设置 General 常规设置 Automatically connect to this network whe ...

  2. [转] 如何批量删除Docker中已经停止的容器

    [From]https://blog.csdn.net/csdn_duomaomao/article/details/78587103 方法一: #显示所有的容器,过滤出Exited状态的容器,取出这 ...

  3. PIE SDK波段合成

    1.算法功能简介 波段合成功能主要用于将多幅图像合并为一个新的多波段图像(即波段的叠加打包,构建一个新的多波段文件),从而可根据不同的用途选择不同波长范围内的波段合成 RGB 彩色图像. PIE支持算 ...

  4. oracle 笔记---(六)__表空间

    查看表空间的大小 select tablespace_name,block_size,contents from dba_tablespaces; 查看表空间对应的数据文件 select file_n ...

  5. linux-lnmp 搭建报错

    一, 大概就是 没有php-nysql拓展 yum -y install php-mysql 二, 编辑php.ini php.ini中 添加extension=mysql.so PHP.ini 中找 ...

  6. GreenPlum 大数据平台--并行备份(四)

    01,并行备份(gp_dump) 1) GP同时备份Master和所有活动的Segment实例 2) 备份消耗的时间与系统中实例的数量没有关系 3) 在Master主机上备份所有DDL文件和GP相关的 ...

  7. Linux软件安装的补充

    1 使用yum 命令查看软件提供的版本 yum list mysql* 然后比如说都需要安装我们就可以执行命令: yum install mysql* 然后就会安装所有的.会显示所有需要安装的包,和需 ...

  8. TOJ 2452 Ultra-QuickSort

    描述 In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a se ...

  9. Linux下MySQL数据库主从同步配置

    说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备 ...

  10. Spring MVC处理异常有3种方法

    1.使用 SimpleMappingExceptionResolver 实现异常处理 <bean class="org.springframework.web.servlet.hand ...