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

2016-02-19 13:24 5 1 收藏

下面图老师小编要跟大家分享Ant+Junit+Log4J+CVS进行XP模式开发的建立,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - 编程语言 】


  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/pathtarget 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上搜索的,可以说互联网赋予了我得一切(除美女^_^)。

来源:http://www.tulaoshi.com/n/20160219/1604119.html

延伸阅读
?XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />   1。所先下载J2SDKEE1.3和J2SDK1.4,jakarta-ant1.3, 其中J2SDKEE和J2SDK1.4可以从www.Java.sun.com免费下载。 2。点击安装,我这边是安装在D盘下 3。进行环境设置: 右击我的电脑/属性/高级/环境变量/系统变量 ...
标签: PHP
将 Sajax 连接到相册 利用刚刚创建的代码,我们将用 Sajax 迅速把相册从多页面应用程序转化成 活动 的 Ajax 应用程序。 因为相册主要有两个函数,get_table() 和 get_image(),这也是需要用 Sajax 导出的全部函数。事实上,为了通过 Sajax 调用这些函数,这些函数本身基本上不需要修改,很快我们就会看到,我们只需...
'makeanewproject;twoforms 'onform1acommandbutton 'putthecodeintherightplaces 'pressF5 SubForm2_load() 'intheform2_loadevent 'besuretomaketheform2smallerthenform1! lngOrigParenthWnd=SetWindowWord(Me.hwnd,-8,mdiMain.hwnd) EndSub PrivateSubForm_Unl...
学习并测试了一下Oracle数据库在开启Archive Log模式下的恢复. 系统是Win2K Server+Oracle 8.1.7. 参考了Chinaunix.net和ITPub.com网站相关资料.在此感谢给我的帮助. 注意,养成一个好的习惯非常重要.在开始恢复之前,以及恢复完成后,都要做一个系统全备份. 首先,要开启Archive Log归档日志模式 1. ...
J2EE是一个开放的、基于标准的开发和部署的平台,用于构建N层的、基于Web的、以服务端计算为核心的、模块化的企业应用。J2EE同时也是所有兼容J2EE标准的应用服务器产品的统一标识。Sun公司领导着J2EE规范和标准的制定,但同时很多公司如IBM、BEA也为该标准的制定贡献了很多力量,所以J2EE每一个新规范的推出,都体现着整个业界对技术的共同认同...

经验教程

920

收藏

98
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部