帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程 >
Ant+Junit+Log4J+CVS进行XP模式开发的建立
作者:未知 发布时间:2005-03-12 来源:JSP天空网
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上搜索的,可以说互联网赋予了我得一切(除美女^_^)。 
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·放眼未来 帝国近期将有重大举措!
·PHPWind6.3.2版通行证发布
·帝国备份王2008版正式发布
·帝国备份王2008版发布
·phpcms2007转帝国CMS5.0程序发布
·dedecms5.1转帝国CMS5.0程序发布
·帝国网站管理系统V5.0商业购买说明
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统