Ant配置文件詳解

<!--
    使用於發佈源碼放在一個目錄中,並使用第三發jar包,通過修改全局變量定義部分完成自定義
    該模板將把第三方jar文件解壓然後打包到新的jar包中。
-->
<project name="SuperDataBaseTools" basedir="." default="main" >

    <description>可疑交易報送服務程序</description>
    
    <!-- 全局變量定義 -->
    <property name="src.dir"         value="src" /><!-- 源代碼目錄 -->
    <property name="build.dir"         value="build" /><!-- 編譯目標文件目錄 -->
    <property name="lib.dir"         value="lib" /><!-- 第三方工具類文件 -->
    <property name="sqljdbc"         value="sqljdbc_auth.dll" /><!-- 資源文件 -->
    <property name="classes.dir"    value="${build.dir}/bin" /><!-- 編譯生成Class文件目錄 -->
    <property name="jar.dir"         value="${build.dir}" /><!-- 打包生成jar文件目錄 -->
    <property name="main-class"     value="conn.ConnDataBase" /><!-- 程序入口對象 -->
    <property name="version"        value="1.0" /><!-- 指定程序的版本號,該值會添加到生成jar文件的後面。 -->
    <property name="encoding"         value="GBK" /><!-- 編譯目標的編碼 -->

    <target name="main" depends="clean, preapare, compile, uncompress, jar, resources, clearUp" description="控制編譯執行流程">
        <echo>編譯完成^_^</echo>
        <echo>目標jar文件:${jar.dir}/${ant.project.name}-${version}.jar</echo>
    </target>

    <target name="clean" description="刪除舊的二進制代碼">
        <echo>清除舊的二進制文件</echo>
        <delete dir="${build.dir}" />
    </target>

    <target name="preapare" depends="clean" description="準備文件目錄">
        <echo>爲之後操作創建文件目錄</echo>
        <mkdir dir="${classes.dir}" description="存放字節碼文件" />
        <mkdir dir="${jar.dir}" description="存放打包之後的jar文件" />
    </target>

    <target name="compile" depends="preapare" description="編譯java文件爲字節碼class">
        <echo>編譯</echo>
        <javac srcdir="${src.dir}" destdir="${classes.dir}">
            
            <compilerarg line="-encoding ${encoding}" />
            <classpath>
                <fileset dir="${lib.dir}">
                    <include name="*.jar" />
                </fileset>
            </classpath>
        </javac>
    </target>
    
    <target name="uncompress" depends="compile" description="將第三方jar解壓到編譯的文件,方便打包">
        <echo>將第三方jar解壓到編譯的文件</echo>
        <unjar dest="${classes.dir}">
            <fileset dir="${lib.dir}">
                <include name="*.jar" />
            </fileset>
        </unjar>
    </target>

    <target name="jar" depends="compile, uncompress" description="將字節碼文件打包成jar文件">
        <echo>打包jar文件</echo>
        <jar destfile="${jar.dir}/${ant.project.name}-${version}.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main-class}" />
                <attribute name="Class-Path" value="." />
            </manifest>
        </jar>
    </target>
    
    <target name="resources" depends="jar" description="配置運行需要的配置信息">
        <echo>配置運行環境</echo>
        <copy todir="${jar.dir}">
            <fileset file="${sqljdbc}">
                <include name="sqljdbc_auth.dll"/>
            </fileset>
        </copy>
    </target>

    <target name="clearUp" description="清理生成的臨時文件">
        <echo>清理構建中產生的臨時文件</echo>
        <delete dir="${classes.dir}" />
    </target>
    
</project>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章