ant安裝、環境變量配置、ant實例

(本文第一地址:http://www.cnblogs.com/huangchanghuan/p/6597741.html)  html

最近須要使用ant打包項目,在服務器上面部署定時器執行任務,因此記錄這此ant打包項目的過程;java

     1.java命令行基礎要熟練(一些參數配置),才能避免ant配置參數不對而產生的bugapache

      (配置javac時候,沒有加debug="true",致使jar包運行,日誌中輸出不了類名,只有一個'?'號)服務器

      INFO 2017-03-21.23:59:03.505 [?:?] 線程任務成功返回:線程執行完成.工具

     2.ant打包項目仍是其餘工具打包,全部項目必須按要求使用jdk版本ui

1、安裝ant

官方http://ant.apache.org/bindownload.cgi下載新版(目前爲Ant1.10.1)的ant,獲得的是一個apache-ant-1.10.1-bin.zip的壓縮包。將其解壓到你的硬盤上,例如:C:\apache-ant-1.10.1。spa

2、配置環境變量

window中設置ant環境變量:命令行

ANT_HOME    C:/ apache-ant-1.10.1線程

path             C:/ apache-ant-1.10.1/bindebug

classpath      C:/apache-ant-1.10.1/lib

3、驗證ant安裝成功(若是驗證不經過,請按前面步驟檢查)

3.1進行以下操做驗證:

依次:開始->運行->cmd,輸入以下命令:ant

  若是出現以下內容,說明安裝成功:  

  

  【說明ant安裝成功!由於ant默認運行build.xml文件,這個文件須要咱們創建。】

3.2查看版本:ant  -version

  

3.3若是驗證不成功,請仔細檢查環境配置.

四.ant實例

 4.1項目結構

  目標用ant生成sunstar-coupon-1.0.jar, 這個jar能執行JDMessageMonitor.main方法就能夠了(因此後面ant配置文件build.xml只對JDMessageMonitor編譯)

  注意ant的配置文件build.xml放在項目根目錄下(通常).

  

 4.2項目build.xml

  這是簡單的配置,裏面有詳細的註解

<?xml version="1.0" encoding="GBK"?>
<!--project 用於定義一個ant工程,其中的三項name、default、basedir缺一不可。
做用分別爲:定義工程名、制定默認執行的任務、以及工程基礎的路徑型(它是計算其它路徑的基礎,通常狀況下使用.即在java工程根目錄便可)-->
<project name="coupon" default="jar" basedir=".">
    <description>easy ant</description> <!--描述,我的以爲就是一提示做用,沒什麼實際用途-->
    <property name="src" value="src" /><!--定義源文件路徑,其中的value換成location也行,使用value的時候,${src}獲得的就是src這個值,若是使用location,獲得的是src這個目錄的絕對路徑-->
    <property name="classes" value="ant/bin" /><!--編譯後class文件存放的地方-->
    <property name="jar_dir_name" value="C:\Users\peter\Desktop\sunstar-coupon-1.0.jar" /> <!--咱們要生成的jar包-->
    <property name="lib.dir" value="doc"/> <!--其餘引用的jar包存放的位置-->

    <!--建立任務init,負責初始化一些條件-->
    <target name="init">
        <delete dir="${classes}" /><!--刪掉原有文件夾-->
        <mkdir dir="${classes}" /><!--從新生成文件夾-->
        <delete file="${jar_dir_name}" /><!--刪除舊的jar包-->
    </target>

    <!--設置classpath,配置引用的jar-->
    <path id="classpath">
        <fileset dir="${lib.dir}">
            <include name="*.jar"/>
        </fileset>
    </path>

    <!--建立編譯任務,名字是compile,depends指定了comiple任務依賴init任務-->
    <target name="compile" depends="init" description="comile target">
        <!--javac,編譯,對應java中的javac命令-->
        <!--srcdir定義源文件路徑-->
        <!--destdir定義編譯後文件路徑-->
        <!--includeantruntime做用是指定編譯任務是否包含ant的classpath,無關緊要,不影響編譯-->
        <!--debug 設置爲true 會把源文件的屬性信息如源文件名稱寫入class文件  ; 若是爲false之後log4j日誌輸出引用類名會找不到變成?號-->
        <javac srcdir="${src}" destdir="${classes}" debug="true" includes="**/JDMessageMonitor.java" includeantruntime="true">
            <classpath refid="classpath"/>    <!--前面已經配置的classpath,引入依賴的jar-->
        </javac>
        <copy todir="${classes}"><!--把src源文件目錄下的配置文件 , 複製到編譯後的目錄中-->
            <fileset dir="${src}">
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </target>

    <!--打包開始,名字爲jar,依賴任務爲compile-->
    <target name="jar" depends="compile" description="make jar file">
        <jar jarfile="${jar_dir_name}" basedir="${classes}"><!--jar操做,jarfile指定jar包存放路徑,basedir爲編譯後的class的目錄-->
            <!--爲jar包指定manifest,固然,若是jar包不須要打成runnable的形式,manifest能夠不要-->
            <manifest>
                <!--指定main-class-->
                <attribute name="Main-Class" value="com.sunstar.coupon.monitor.JDMessageMonitor" /><!--java -jar sunstar-coupon-1.0.jar  默認執行com.sunstar.coupon.monitor.JDMessageMonitor.main方法-->
                <!--指定Class-Path-->
                <!--<attribute name="Class-Path" value="${libs}">-->
                <!--</attribute>-->
            </manifest>
        </jar>
    </target>
</project>

<!--ant.project.name是ant默認的一個變量,值爲最上面定義的project的name  ;  ${DSTAMP}爲日期,格式爲20111123;${TSTAMP}爲時間,格式爲2256,表示22點56分。-->

 4.3執行與結果

  4.3.1 在項目的根目錄下,打開cmd,執行ant;

  根目錄(便是build.xml所在目錄),輸入ant,回車

  

  4.3.2 ant執行結果截圖與說明

    我在build.xml中配置生成jar的路徑是電腦桌面

    <property name="jar_dir_name" value="C:\Users\peter\Desktop\sunstar-coupon-1.0.jar" /> <!--咱們要生成的jar包-->

    

  

 

  4.3.2 命令行運行sunstar-coupon-1.0.jar

    sunstar-coupon-1.0.jar裏面的結構就是咱們編譯後生成的目錄結構,沒有包含其餘依賴的jar包,因此咱們把sunstar-coupon-1.0.jar和全部依賴jar放在同一個文件夾中:

    而後執行:java -cp "./sunstar-coupon-1.0.jar;./*"   com.sunstar.coupon.monitor.JDMessageMonitor

    (注意命令中-cp參數,必須把sunstar-coupon-1.0.jar放前面,保證先在sunstar-coupon-1.0.jar中找配置文件)

    

    執行成功!!!

    

相關文章
相關標籤/搜索