目录

Ant 学习及常用任务

目录

安装与配置

下载地址:http://ant.apache.org/bindownload.cgi,解压。

添加系统环境变量: ANT_HOME,该变量指向 Ant 解压后的根目录。 PATH,追加 path 目录 %ANT_HOME/bin%;

安装与配置完毕后,在 cmd 里运行命令 ant –version,若安装和配置成功,则会显示 Ant 版本信息。

样例

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
<?xml version="1.0"?>
<project name="helloWorld" default="sayBaseDir">
  <!-- 变量 -->
  <property name="basedir" value="D:\workspace\ant"/>
  <property name="propertyStudy" value="example"/>
  <property name="name" value="amigo"/>
  <property name="age" value="25"/>
  <property name="classes" value="build/classes"/>
  <property name="build" value="build"/>
  <target name="targetA" if="ant.java.version">
    <!-- 打印一串字符 -->
    <echo message="Java Version: ${ant.java.version}"/>
    <!-- 将消息输出到文件中 -->
    <echo message="Java Version: ${ant.java.version}" file="copy/a.txt" append="true"/>
  </target>
  <!-- 任务依赖 先执行targetA 如果amigo不存在则执行-->
  <target name="targetB" depends="targetA" unless="amigo">
    <description>
      a depend example!
    </description>
    <!-- 打印一串字符 -->
    <echo message="The base dir is: ${basedir}"/>
  </target>
  <target name="copyA">
    <description>
      a copy example!
    </description>
    <echo message="Copy start..."/>
    <!-- 复制单个文件 -->
    <copy file="copy/a.txt" tofile="copy/b.txt"/>
    <!-- 对文件目录进行复制 -->
    <copy todir="copy_res">
      <fileset dir="copy"/>
    </copy>
    <!-- 文件复制到另外的目录 -->
    <copy file="copy/a.txt" todir="copy_res/new_copy"/>
  </target>
  <target name="deleteA">
    <description>
      a delete example!
    </description>
    <echo message="Delete start..."/>
    <!-- 删除某个文件 -->
    <delete file="copy/b.txt"/>
    <!-- 删除某个目录 -->
    <delete dir="copy_res"/>
    <!-- 删除所有的备份目录或空目录 -->
    <delete includeEmptyDirs="true">
      <fileset dir="." includes="**/*.bak"/>
    </delete>
  </target>
  <target name="mkdirA">
    <description>
      a mkdir example!
    </description>
    <echo message="Mkdir start..."/>
    <!-- 创建目录 -->
    <mkdir dir="build"/>
  </target>
  <target name="moveA">
    <description>
      a move example!
    </description>
    <echo message="Mkdir start..."/>
    <!-- 移动单个文件 -->
    <move file="copy_res/a.txt" tofile="copy_res/b.txt"/>
    <!-- 移动单个文件到另一个目录 -->
    <move file="copy_res/b.txt" todir="copy_res/new_copy"/>
    <!-- 移动某个目录到另一个目录 -->
    <move todir="copy_res_new">
      <fileset dir="copy_res"/>
    </move>
  </target>
  <!-- 删除目录 -->
  <target name="clean">
     <delete dir="build"/>
  </target>
  <!-- 进行编译 -->
  <target name="compile" depends="clean">
      <mkdir dir="${classes}"/>
      <javac srcdir="src" destdir="${classes}"/>
  </target>
  <!-- 运行编译运行 -->
  <target name="run" depends="compile">
    <java classname="HelloWorld">
      <classpath>
        <pathelement path="build/classes"/>
      </classpath>
    </java>
  </target>
  <!-- 生成jar文件 -->
  <target name="jar" depends="run">
    <jar destfile="helloworld.jar" basedir="build/classes">
      <manifest>
        <attribute name="Main-class" value="HelloWorld"/>
      </manifest>
    </jar>
  </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文件-->
      <classes dir="${classes}"/>
    </war>
  </target>
</project>