天天看點

Common Tool —— ant

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>