《Java極限編程》(Java Tool for Extreme Programming)讀書筆記 (4)
來源:互聯網
上載者:User
筆記|編程
第四章 使用Ant進行持續整合這一章是對Ant的一個基礎介紹,包括1.Ant構建檔案 build.xml2.項目 <project name="myproject" default="all" basedir=".">3.目標 <target name="all" depends="clean, fetch, build, test, docs, deploy">Steve Loughran的Ant in Anger中top-level targets的推薦命名如下: test— 運行JUnit測試 clean— 清空輸出目錄 deploy— 將JARs, WARs等檔案部署到執行環境中 publish— 輸出原始碼和二進位檔案到發布網站(指IIS,HTML?我不知道) fetch— 從CVS中得到最新原始碼 docs/javadocs— 輸出文檔檔案 all— 執行以上所有(clean, fetch, build, test, docs, and deploy) main— 預設構建過程 (經常是build 或者build & test)internal targets的推薦命名如下: init— 初始化properties執行其他初始化任務,讀入property檔案 init-debug— 初始化調試屬性 init-release— 初始化發布屬性 compile— 實際的編譯 link/jar— 建立JAR檔案或其它等價檔案 staging— 預部署並且測試4.條件性目標<target name="setupProdution" if="production"> <target name="setupDevelopment" unless="production"> ant -build.xml build4.xml -Dproduction=true5.檔案集和路徑設定<project name="hello" default="compile"> <property name="lib" value="../lib"/> <property name="outputdir" value="/tmp"/> <path id="1"> <pathelement location="."/> <pathelement location="${lib}/log4j.jar"/> </path> <path id="2"> <pathelement path=".;${lib}/log4j.jar"/> </path> <path id="3"> <pathelement location="."/> <fileset dir="${lib}"> <include name="**/*.jar"/> </fileset> </path> <target name="compile"> <javac srcdir="./src" destdir="${outputdir}/classes"> <classpath refid="1"/> </javac> <javac srcdir="./src" destdir="${outputdir}/classes"> <classpath refid="2"/> </javac> <javac srcdir="./src" destdir="${outputdir}/classes"> <classpath refid="3"/> </javac> <javac srcdir="./src" destdir="${outputdir}/classes"> <classpath id="1"> <pathelement location="."/> <pathelement location="${lib}/log4j.jar"/> </classpath> </javac> </target></project>6.過濾器<filter token="jdbc_url" value="jdbc::development">7.嵌套構建檔案<ant antfile="./hello/build.xml"> <property name="production value="true"" /></ant>8.property<property name="outputdir" value="/tmp" />
總體來看ant是一個強大的自動化構建工具,代碼編寫完後的工作都可以交給ant來完成。這使nightly build成為可能,使用ant,甚至可以運行完測試代碼之後將結果產生HTML,然後發email給開發人員,這樣開發人員就能在第二天早上看到build失敗的原因了,這樣開發人員第二天進能快速知道今天的第一件事是什麼,快速的進入一天八小時的工作狀態了。這一點和kent beck的《測試驅動開發》(中文版)中的某些觀點類似,即一天8小時的工作之後,不要急著加班將手頭的工作做完才回家,而是做到哪兒是哪兒,這樣第二天來的時候能快速的進入工作狀態,而不是從頭想,昨天做了哪些,今天應該開始做哪些。(晚上電腦不用關機,可以只關掉螢幕、鎖上鍵盤,或者將電腦設為休眠狀態,也能很大程度上讓第二天的"進入狀態"的過程更短)
對了,不知道有沒有IDE能在我寫Ant的build.xml檔案的時候提供方便,最好是圖形介面,不用我對著枯燥的文字編輯器。這點以前netBeans的properties檔案編輯器就不錯,能同時編輯幾個不同語言的properties檔案。