程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Ant+Junit+Log4J+CVS進行XP模式開發的建立

Ant+Junit+Log4J+CVS進行XP模式開發的建立

編輯:JAVA編程入門知識

  Ant+Junit+Log4J+CVS進行XP模式開發的建立
  作者(100101)北京信息工程學院 蔡君
  一、 綜述
  軟件行業的發展幾乎進入到了瘋狂的地步,各種各樣的軟件蜂擁市場,而軟件的開發模式也是在不斷的改變的,推出了許多的設計模式供大家使用,我在這裡介紹得就是基於XP模式的開發。XP也叫做極限編程。他給人提供了一種全新的開發軟件的模式,或許您還沒有使用,或許您在使用,但是沒有具體到實施。本文向您介紹了基於許多免費軟件的XP模式增量開發環境的建立。
  二、 軟件下載
  1. Ant
  Ant是一個基於Java的build工具。大家都知道,現在已經有了許多的build工具,例如make、gnumake、nmake、jam等,而且這些工具都非常優秀。那我為什麼還要給大家介紹Ant這個新工具呢? 因為Ant是一個跨平台的Build工具。之所以Ant能跨平台,是因為Ant不再需要你編寫shell命令,Ant的配置文件是基於XML的任務樹,能讓你運行各種各樣的任務,任務的運行是由實現了特定任務接口的對象來完成的。
  下載地址:http://jakarta.apache.org/builds/jakarta-ant/release/
  2. Junit
  隨著Refactoring技術和XP軟件工程技術的廣泛推廣,單元測試的作用在軟件工程中變得越來越重要,而一個簡明易學、適用廣泛、高效穩定的單元測試框架則對成功的實施單元測試有著至關重要的作用。在java編程語句環境裡,Junit Framework是一個已經被多數java程序員采用和實證的優秀的測試框架.
  下載地址:http://www.junit.org
  3. Log4J
  Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制台、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感愛好的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。
  下載地址:http://jakarta.apache.org/log4j/jakarta-log4j-1.2.8.zip
  4. Jdom
  Java + XML = JDOM !
  這就是JDOM設計者的目標。假如你曾經使用過煩人的SAX或是DOM來處理XML,你就會知道為什麼要有JDOM或者是JAXB。在今年(2002)的JavaOne會議上JDOM的主要創始人Jason Hunter有一篇出色的演講介紹了JDOM技術,題目就是JDOM Makes XML Easy。
  在那篇文檔裡,JDOM被拿來與DOM比較,而我更願意拿它同JAXB比較。因為JAXB和JDOM都是為了在Java中提供比DOM和SAX更為方便的XML處理接口而開發的,並且通過完全不同的途徑來解決這個問題。JDOM的處理方式是與DOM類似的樹操作。而JAXB通過DTD和綁定模式來生成訪問XML文檔的Java代碼,將XML映射成了Java對象來操作
  下載地址:http://www.jdom.org/downloads/index.Html
  
  三、 環境的建立
  把以上文件下載之後解壓縮之後,設定您的JAVA_HOME,以及ANT_HOME之後,在DOS環境下鍵入ant,假如出現了如下情況
  Buildfile: build.xml does not exist!
  Build failed
  
  證實了您的ANT環境已經搭建成功了。還需要注重的就是您假如需要JUNIT的任務,那麼您需要將Junit.jar拷貝到ANT_HOME/lib目錄下面。
  四、 程序的實現
  在XP中提倡先建立測試單元。那麼我們想建立一個讀XML的,程序的話,我們需要建立一個Case,ReadXMLCase.java
  
  package test;import xml.ReadXML;import junit.framework.*;/** * Title: 阿菜Java技術站 * Description: * Copyright: Copyright (c) 2003 * Company: <a href="http://www.ejb.cn"target="_blank">www.ejb.cn</a> * @author: acai * @version 1.0 */public class ReadXMLCase extends TestCase { /** * ConstrUCtor for ReadXMLCase. */ public ReadXMLCase() { super(); } /** * Constructor for ReadXMLCase. * @param arg0 */ public ReadXMLCase(String arg0) { super(arg0); } public void testPrintXML() { ReadXML rx = new ReadXML("E:/workspace/graduationDesigner/web.xml"); rx.printXML(); } public static void main(String args[]) { junit.textui.TestRunner.run(new TestSuite(ReadXMLCase.class)); }}
  
  
  
  此編譯是不能夠通過,還需要我們編寫ReadXML.java
  
  
  package xml;import org.apache.log4j.Logger;import org.apache.log4j.BasicConfigurator;import org.apache.log4j.NDC;import org.jdom.*;import org.jdom.input.*;import org.jdom.output.*;import java.io.*;/** * Title: 阿菜Java技術站 * Description: * Copyright: Copyright (c) 2003 * Company: <a href="http://www.ejb.cn"target="_blank">www.ejb.cn</a> * @author: acai * @version 1.0 */public class ReadXML { static Logger log = Logger.getLogger(ReadXML.class.getName()); private String fileName = null; private SAXBuilder builder = null; /** * Constructor for ReadXML. */ public ReadXML(String fileName) { super(); BasicConfigurator.configure(); this.fileName = fileName; builder = new SAXBuilder(); } public void printXML() { try { log.info("開始創建Document"); Document doc = builder.build(new File(fileName)); XMLOutputter outputter = new XMLOutputter(); log.info("開始輸出XML內容:"); outputter.output(doc, System.out); log.info("輸出結束!"); } catch (Exception e) { e.printStackTrace(); } }}
  
  編寫Build.XML文件
  
  <project name="acaiDesigner" default="junit"basedir="."> <!-- App name-dependent settings. --> <property name="appname" value="acaiDesigner"/> <property name="src" value="${basedir}/src"/> <property name="build.classesdir" value="${basedir}/bin"/> <path id="classpath"> <pathelement path="${classpath}:${build.classesdir}" /> <fileset dir="${basedir}/lib"> <include name="*.jar" /> </fileset> </path> <target name="compile"> <javac srcdir="${src}" destdir="${build.classesdir}"> <classpath refid="classpath"/> </javac> </target> <target name="junit" depends="compile"><junit printsummary="yes" fork="yes"haltonfailure="yes"> <classpath refid="classpath"/> <formatter type="plain"/> <test name="test.ReadXMLCase" /></junit></target></project>
  
  在DOS下面運行ant,ok就可以自動編譯和單元測試了,假如編譯錯誤,會打印出來相對應的錯誤信息。假如您進行了單元測試的話,您可以在您的目錄下面看到這樣的一個文件TEST-test.ReadXMLCase.txt,這個文件裡面具體記載了本次單元測試的經過。並且在裡面可以看到Log4J打印的結果。
  五、 結束語
  XP模式強調的是一種單元測試,他們要求的測試代碼比自己的源程序代碼還要多,這也是建立一個強大系統的根源吧,短暫的接受了XP模式,發現他帶給我的不僅僅是一種新的思想,而且他帶給我更好、更快的軟件開發。而且這種方式讓我很輕易排除我程序的錯誤,不要到客戶面前讓我不敢肯定說出我得軟件,他讓我有信心說,這個經過測試的。僅僅是短暫的接受而已,沒有深入的研究,錯誤在所難免,希望大家能夠多多交流。我的郵箱:[email protected] 網站 http://ejb.cn
  
  六、 參考資源:
  N多,還沒有整理。我在Google.com上搜索的,可以說互聯網賦予了我得一切(除美女^_^)。
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved