分享
 
 
 

Ant+Junit+Log4J+CVS进行XP模式开发的建立

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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模式,发现他带给我的不仅仅是一种新的思想,而且他带给我更好、更快的软件开发。而且这种方式让我很轻易排除我程序的错误,不要到客户面前让我不敢肯定说出我得软件,他让我有信心说,这个经过测试的。仅仅是短暂的接受而已,没有深入的研究,错误在所难免,希望大家能够多多交流。我的邮箱:webmaster@justhis.com 网站 http://ejb.cn

六、 参考资源:

N多,还没有整理。我在Google.com上搜索的,可以说互联网赋予了我得一切(除美女^_^)。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有