Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other.
Ant是一個将軟體編譯、測試、部署等步驟聯系在一起加以自動化的工具
build.xml文法
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
<project>是根元素
name: 項目名
basedir: 項目根目錄
default: 預設運作的<target>單元
-->
<project name="pro" basedir="." default="clean" >
<!--
<property>屬性定義
-->
<property enviroment="env" /> <!-- 必須放在最前,確定可以使用編譯平台的環境變量 -->
<property name="source" value="src" />
<property name="library" value="lib" />
<property name="target" value="target" />
<!--
<path>路徑定義
id: 路徑名
fileset: 目标檔案
-->
<path id="pathId">
<fileset dir="${librarg}" include="*.jar" />
</path>
<!--
<target>是處理單元
name: 單元名
depends: 标記執行順序
-->
<!-- ## 處理流程示例: init -> compile -> build -> clean ## -->
<!-- ## init ## -->
<target name="init">
<!--
<mkdir>建立目錄
dir: 目錄
-->
<mkdir dir="${target}" />
<mkdir dir="${target}/classes" />
<mkdir dir="${target}/tmp" />
</target>
<!-- ## compile ##-->
<target name="compile" depends="init">
<!--
<javac>編譯
srcdir:源目錄
destdir: 目标目錄
include: 比對模式
exclude: 排除模式
classpath: 類路徑-->
<javac srcdir="${source}" destdir="${target}/classes" encoding="UTF-8" includeantruntime="false">
<include name="*.java" />
<classpath refid="pathId" />
</javac>
</target>
<!-- ## build ## -->
<target name="jar" depends="compile">
<jar destfile="${target}/project.jar" />
</target>
<!-- ## clean ##-->
<target name="clean" depends="jar">
<!-- <copy>拷貝
file:源檔案
tofile: 目标檔案
dir: 源目錄
todir: 目标目錄
overwrite: 覆寫
-->
<copy todir="${target}/tmp">
<fileset dir="${target}/classes">
<include name="*.class" />
</fileset>
</copy>
<!--
<delete>删除檔案或目錄
file:檔案名
dir: 目錄名
-->
<delete dir="${target}/classes" />
</target>
</project>