下载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. Navicat 连接Sqlite数据库的方法和步骤

    1.打开Navicat,进行如下操作. 2.在弹出的新建连接对话框中输入正确的信息,点击“确定”按钮. 3.可见如下

  2. mysql ibdata 单独存储

    简介ibdata1 ibdata1文件是InnoDB存储引擎的共享表空间文件,存放位置my.ini 中的 datadir="D:\phpStudy\MySQL\data",目录下. ...

  3. C++_IO与文件2-用cout进行输出

    C++将输出流看作是字节流,在程序中,很多数据被组织成比字节更大的单位. 例如int类型由16位或者32位的二进制值表示:double值由64位的二进制数据表示: 但是在将字节流发送给屏幕时,希望每个 ...

  4. 【算法笔记】B1022 D进制的A+B

    1022 D进制的A+B (20 分) 输入两个非负 10 进制整数 A 和 B (≤2​30​​−1),输出 A+B 的 D (1<D≤10)进制数. 输入格式: 输入在一行中依次给出 3 个 ...

  5. POJ - 2891 中国剩余定理

    \(mod\)存在不互素情况下的CRT #include<iostream> #include<algorithm> #include<cstdio> #inclu ...

  6. java单元测试之Mock静态方法

    1 public final class AmountUtil { public static String CustomFormatWith2Digits(int amount) { return ...

  7. python附录-builtins.py模块str类源码(含str官方文档链接)

    python附录-builtins.py模块str类源码 str官方文档链接:https://docs.python.org/3/library/stdtypes.html#text-sequence ...

  8. kali 安装命令类

    apt-get常用命令:update – 取回更新的软件包列表信息upgrade – 进行一次升级install – 安装新的软件包(注:软件包名称是 libc6 而非 libc6.deb)remov ...

  9. linux 运维基础测验题

    第一题:创建一个目录/data --> mkdir /data eg: ls  -d 显示命令    -l 详细信息    -a 显示所有文件 cd 打开目录 pwd 显示当前目录 第二题:在/ ...

  10. (转)[Nginx] – 配置文件优化 [一 ,二]

    [Nginx] – 安全优化 – 配置文件优化 [二] 原文:https://www.abcdocker.com/abcdocker/586 [Nginx] – 性能优化 – 配置文件优化 [一] 原 ...