下载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">
  1. <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. C# 函数参数object sender, EventArgs e

    object sender:表示触发事件的控件对象EventArgs e:表示事件数据的类的基类 Windows程序有一个事件机制.用于处理用户事件. 在WinForm中我们经常需要给控件添加事件.例 ...

  2. npm 安装 sass=-=-=

    先按照 cnpm  .....因为外网安不上... cnpm install node-sass --save-dev cnpm install sass-loader --save-dev

  3. linux 查看当前目录下包含某个字符串的文件

    $ grep -rn '字符串' 很好用~

  4. docker image rm ubuntu 失败

    [root@hadoop14 ~]# docker image rm ubuntu Failed to remove image (ubuntu:v2): Error response from da ...

  5. Windows 安装Angular CLI

    1.安装nvm npm cnpm nrm(onenote笔记上有记录) 参考:https://blog.csdn.net/tyro_java/article/details/51232458 提示:如 ...

  6. pip不是内部或外部命令也不是可运行的程序或批处理文件的问题

    当我用windows电脑 pip install missingno 时 它居然会报pip不是内部或外部命令也不是可运行的程序或批处理文件的问题! 解决方法: 1)找到 pip.exe 所在位置,一般 ...

  7. Karma+Jasmine测试环境搭建

    1.如果你还没安装node的话,去这里下载:http://nodejs.cn/download/,选择跟你电脑匹配的并进行安装,一路next下来就行,路径最好改成自己让自己舒服的,默认的路径可能会很让 ...

  8. 2019.3.25 SQL语句(进阶篇1)

    运算符 基本的加减乘除取余都可以在SQL中使用 新建Employee1表并添加数据 create table Employee1 (eid int primary key auto_increment ...

  9. Flutter FormatException: Bad UTF-8 encoding 0xc3 (at offset 172)

    是文件编码问题. 1,打开 Android Studio 进入设置界面 Ctrl + Alt + S 或 File --> Settings 打开如下界面: 2,将 Project Encode ...

  10. oracle 基础知识(十五)----高水位线

    一,oracle的逻辑存储管理 ORACLE的逻辑存储管理,分4个粒度:表空间,段,区和块. ## 块 粒度最小的存储单位,现在标准的块大小是8K,ORACLE每一次I/O操作也是按块来操作的,也就是 ...