<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 100  文章 - 50  trackbacks - 0
    <2014年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    我收藏的一些文章!

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     

    用Ant編譯Java Web程序

    分類: J2EE2009-03-27 15:14 1930人閱讀 評論(0) 收藏 舉報
    antjavawebclassincludedelete

    先看一下項目的目錄結構:

    source目錄里放Java源程序,classes目錄里放編譯好的class文件。這兩個目錄里的文件都要按包結構組織好。當然,classes目錄也可以不必事先建立,這可以交給Ant去做。以下是我寫的build.xml,放在Hello目錄下:

     

    1. <?xml version="1.0" encoding="UTF-8" ?>  
    2. <project name="hello" default="compile" basedir=".">  
    3.     <property name="tomcat.lib" value="/home/albert/Applications/apache-tomcat-5.5.26/common/lib" />  
    4.     <property name="dest.dir" value="WEB-INF/classes" />  
    5.     <property name="src.dir" value="source" />  
    6.     <target name="init">  
    7.         <mkdir dir="${dest.dir}" />  
    8.     </target>  
    9.     <target name="compile" depends="init">  
    10.         <javac srcdir="${src.dir}" destdir="${dest.dir}">  
    11.             <classpath>  
    12.                 <fileset dir="${tomcat.lib}">  
    13.                     <include name="*.jar" />  
    14.                 </fileset>  
    15.                 <fileset dir="WEB-INF/lib">  
    16.                     <include name="*.jar" />  
    17.                 </fileset>  
    18.             </classpath>  
    19.         </javac>  
    20.     </target>  
    21.     <target name="clean">  
    22.         <delete dir="${dest.dir}" />  
    23.     </target>  
    24. </project>  

     

    在Ant的構建文件build.xml中,最重要的是target(目標)。一個build.xml往往包含了多個target,定義了一個軟件項目的構建過程以及每步之間的依賴關系。例如對于這個項目來說,“編譯”必須要在創建完classes目錄后才能進行。此外,在進行編譯時,ant還會比較源文件和對應的class文件的時間戳,以此來判斷源文件在上次編譯后是否被更新,是否需要重新編譯。知道了這些,就可以大體說下各項的含義了。

    最外層的project元素定義了項目的名稱(name),默認構建目標(default)和構建的基本目錄(basedir,當前目錄 “.”)。basedir即設定文件中的相對路徑是相對于誰而言的。接下來有一些property元素,你可以把它們當成一些變量的定義,這是為了接下來引用的方便。

    然后定義了三個target元素。第一個target的名字是init。名字的作用是:如果你想執行某個target的任務,只需在命令行下執行 ant 即可。如果省略了,ant會執行在project元素中定義的默認目標。在里面用mkdir定義了一個任務,即創建classes目錄。這里引用了剛才定義的property,注意引用property的寫法:”${dest.dir}”。

    第二個是compile目標。depends=”init”說明它依賴于init。即當Ant發現init目錄沒有完成時(classes目錄還沒有創建時),Ant會先執行init目標。compile目標里面用javac元素描述了編譯任務。srcdir和destdir分別指定了源文件的目錄和編譯后class文件的目錄。盡管因為包結構的原因,source目錄下還有子目錄,但Ant會把source目錄下的所有Java源文件進行編譯,并且在classes目錄下建立相應的包結構目錄,把所有的class文件放在正確的位置上。所有這一切都只是用這兩個參數來描述的。再往里是 classpath元素,用來設定編譯時的classpath,以便引用servlet-api.jar和struts庫里的類。我偷了個懶,把所有的 jar文件都包含進來了。用的是fileset,指定好目錄和要包含的文件名(可以有通配符)就行了。

    最后一個target clean是清除編譯生成的文件,用delete元素來完成。這樣當在命令行下執行ant clean后,classes目錄就被刪除了。

    把這個build.xml放在項目目錄Hello中,以后只要在Hello目錄下執行ant,就會自動把所有需要編譯的文件編譯好后放在classes目錄里了,非常方便。
    others
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="hello" default="compile" basedir=".">

        <property name="project.lib" value="WebRoot/WEB-INF/lib" />
        <property name="tomcat.lib" value="D:/apache-tomcat-6.0.35/lib" />
        <property name="dest.dir" value="WebRoot/WEB-INF/classes" />
        <property name="src.dir" value="src" />
        <target name="init">
            <mkdir dir="${dest.dir}" />
        </target>
        <target name="compile" depends="init">
            <javac srcdir="${src.dir}" destdir="${dest.dir}" includeAntRuntime="false"  encoding="UTF-8">
                <classpath>
                    <fileset dir="${project.lib}">
                        <include name="*.jar" />
                    </fileset>
                    <fileset dir="${tomcat.lib}">
                        <include name="*.jar" />
                    </fileset>                
                </classpath>
            </javac>
        </target>
        <target name="clean">
            <delete dir="${dest.dir}" />
        </target>
    </project>
    posted on 2014-08-27 22:34 fly 閱讀(116) 評論(0)  編輯  收藏 所屬分類: Ant學習

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费精品国自产拍在线播放| 亚洲国产成人久久精品app| 老司机午夜在线视频免费观| 午夜两性色视频免费网站| 亚洲日韩国产二区无码| 色www永久免费视频| 精品女同一区二区三区免费播放 | 久久久精品免费国产四虎| 亚洲人成网站在线播放vr| 丝袜捆绑调教视频免费区| 亚洲AV无码精品色午夜果冻不卡| 日本黄色动图免费在线观看| 久久综合日韩亚洲精品色| 18禁美女黄网站色大片免费观看| 亚洲欧洲国产精品久久| 成人最新午夜免费视频| 草久免费在线观看网站| 亚洲va无码手机在线电影| 最近免费中文在线视频| 亚洲一日韩欧美中文字幕在线| 免费在线观看视频a| 免费无码黄网站在线看| 亚洲国产夜色在线观看| 免费看少妇作爱视频| 国产精品玖玖美女张开腿让男人桶爽免费看| 亚洲色偷偷偷鲁综合| 亚欧人成精品免费观看| 亚洲av中文无码乱人伦在线观看 | 亚洲高清免费在线观看| 亚洲中文字幕久久久一区| 亚洲精品国产日韩无码AV永久免费网| 国产午夜无码片免费| 亚洲一区二区三区免费视频| 免费看男女下面日出水视频| 一本久久A久久免费精品不卡| 亚洲中文字幕在线观看| 日本在线高清免费爱做网站| 久久精品熟女亚洲av麻豆| 久久久久无码精品亚洲日韩| 女人18毛片水最多免费观看| 中文字幕乱码免费看电影|