使用Ant自動化咱們的java項目生成

如今咱們已經瞭解如何定義屬性、依賴關係以及如何運行ant,接下來咱們將學習怎樣使用ant編譯java源代碼並生成jar文件。java

編譯源代碼ide

因爲Ant的主要目標就是生成java應用程序,它內置了javac任務來調用java的編譯器。此任務通常定義以下學習

<javac srcdir=」src」  destdir=「build」/>ui

Ant會尋找src目錄下全部以.java爲擴展名的全部文件,並對他們調用javac編譯器,從而在build目錄下生成class文件。Javac任務不只會編譯須要編譯的源文件,若是某個類文件已經存在,可是對應的源代碼文件自從該類文件生成後沒有改過,則不會從新編譯此源代碼文件。spa

建立jar文件code

在編譯java源文件以後,一般會將其歸檔打包爲一個jar文件。Jar任務一般以下定義xml

<jar destfile=」wufengtinghai.alm.jar」  basedir=」build」/>blog

此任務將建立一個wufengtinghai.alm.jar文件,並將build下的全部文件打包到此jar文件中。若是沒有指定清單文件,Ant則會生成一個基本的清單文件。Manifest屬性容許制定一個清單文件,同時也可使用manifest任務定義清單文件。ip

<jar destfile="wufengtinghai.alm.jar" basedir="classes">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="project" value="wufengtinghai.alm"/>
</manifest>
</jar>
View Code

 

生成時間戳 get

在生成環境中使用當前時間和日期,能夠以此種方式標記某個生成什麼時候生成輸出的。Ant提供了簡單易用的tstamp任務能夠完成這個功能。這個任務一般在生成過程開始時調用。Tstamp不產生任何的輸出;相反,它會根據當前系統時間和日期設置Ant的相關屬性。

DSTAMP:設置爲當前日期,默認格式爲yyymmdd,例如20150606

TSTAMP:設置爲當前時間,默認格式爲hhmm,例如1020

TODAY:設置爲當前日期,帶完整的月份,例如2015年6月6日

那咱們能夠將咱們的jar文件定義爲以下

<jar destfile="lucene-${DSTAMP}.jar" basedir="classes"/>

最終咱們的生成文件autobuildjava.xml以下

<?xml version="1.0"?>
<project default="dist" name="autobuildjava"  basedir="../">
    <description>A simple auto build  Java project</description>
    <property name="srcDir" location="src" />
    <property name="buildDir" location="build" />
    <property name="distDir" location="dist" />
    <target name="init">
        <tstamp />
        <mkdir dir="${buildDir}" />
        <mkdir dir="${distDir}" />
    </target>
    <target name="compile" depends="init">
        <javac srcdir="${srcDir}" destdir="${buildDir}" />
    </target>
    <target name="dist" depends="compile">
        <jar destfile="${distDir}/wufengtinghai.alm-${DSTAMP}.jar" basedir="${buildDir}">
            <manifest>
                <attribute name="Built-By" value="${user.name}" />
                <attribute name="project" value="wufengtinghai.alm" />
            </manifest>
        </jar>
    </target>
    <target name="clean">
        <delete dir="${buildDir}" />
        <delete dir="${distDir}" />
    </target>
</project>
View Code

執行生成控制檯輸出以下

生成的jar文件和清單文件以下

相關文章
相關標籤/搜索