`
laorer
  • 浏览: 428633 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

<转>Ant实战篇

    博客分类:
  • j2EE
阅读更多

  将两篇放到一起了.想找 与Junit 和deploy相关的内容,但感觉这个不错,就载过来,给大家共享.相应的页面有Ant理论篇.需要的朋友可以去他的blog上看看.http://tb.blog.csdn.net/TrackBack.aspx?PostId=14018   ...

  1.   将两篇放到一起了.想找 与Junit 和deploy相关的内容,但感觉这个不错,就载过来,给大家共享   
  2.   .............................................................................................   
  3.   Ant实战篇 (一)   
  4.   修订者:黄 凯           
  5.   E_mail:hk_sz@163.com   
  6.   前 言   
  7.   由于现在公司进行Unit Test Case的整理阶段,所以抽空对Ant和Junit技术进行了一下了解,以下是集合了众家所长之精华(考虑到是按我的思路总结的,也许不能完全表述原作者的思路,所以在参考中我把所有参考过的文章网址或书籍都罗列了出来,大家有时间不妨去看看原文)。   
  8.   如果对Ant部分参数不明白的话,请参看《Ant理论篇》系列或ant自带的文档。   
  9.   目 录   
  10.   一、 Ant使用实例   
  11.   1.1 通过Ant的copt task将当前目录下最近更新的文件(按系统时间来区分)文件提交至指定目录   
  12.   1.2 用Ant开发java程序   
  13.   1.3 ant结合junit进行软件自动测试       
  14.   1.4 ant开发和部署web应用程序   
  15.   1.5 ant打包(jar)应用程序   
  16.   1.6 ant开发EJB应用程序   
  17.   Ant使用实例   
  18.   1.1 通过Ant的copt task将当前目录下最近更新的文件(按系统时间来区分)文件提交至指定目录   
  19.   1> 前提:在D盘下创建两个文件夹test1和test2,并在test1中创建build.xml文件,内容如下:   
  20.   <?xml version="1.0"?>  
  21.   <project name="test" default="upload">  
  22.   <!-- 设置提交的根路径以及提交目录属性 -->  
  23.   <property name="dest_drive" value="D:\" />  
  24.   <property name="dest_dir" value="${dest_drive}\test2\test" />  
  25.   <!-- 如果没有提交目录的话,创建提交目录 -->  
  26.   <target name="create_dir">  
  27.   <mkdir dir="${dest_dir}" />  
  28.   </target>  
  29.   <!-- 通过copy task提交当前目录下除build.xml外所有非临时文件 -->  
  30.   <target name="upload" depends="create_dir">  
  31.   <copy todir="${dest_dir}">  
  32.   <fileset dir=".">  
  33.   <exclude name="**\build.xml"/>  
  34.   </fileset>  
  35.   </copy>  
  36.   </target>  
  37.   </project>  
  38.   2>进入DOS命令行状态,运行D:\test1>ant。进入test2中进行检查,看是否已经建立好了test子目录并且将test1中的文件除build.xml外都已经提交过来。如果这时你再运行ant,会发现其没有任何操作提示,因为已经没有新文件需要提交了。   
  39.   注:有兴趣的朋友不妨将其中一个文件更新一下再执行一次,你会发现upload:下会出现新的信息。   
  40.   Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=14017  
  41.   一、 Ant使用实例   
  42.   1.2 用Ant开发java程序,以HelloWord为例   
  43.   1> 本次实例的目录结构:   
  44.   D:\test 主目录   
  45.   \src  源程序目录   
  46.   \classes 编译后的class文件目录   
  47.   首先在D盘创建test目录和src子目录。   
  48.   2> 在src子目录下创建HelloWord.java文件,内容如下:   
  49.   public class HelloWord   
  50.   {   
  51.   public static void main(String args[])   
  52.   {   
  53.   System.out.println("Hello World!");   
  54.   }   
  55.   }   
  56.   3> 在test主目录下创建build.xml文件,内容如下:   
  57.   <?xml version="1.0"?>  
  58.   <project default="build" basedir=".">  
  59.   <property name="appname" value="HelloWord" />  
  60.   <property name="base" value="D:\test" />  
  61.   <property name="src" value="src" />  
  62.   <property name="build" value="classes" />  
  63.   <property name="myclasspath" value="${base}\${build}" />  
  64.   <target name="build">  
  65.   <mkdir dir="${build}" />  
  66.   <javac srcdir="${src}" destdir="${build}">  
  67.   <include name="**/*.java" />  
  68.   </javac>  
  69.   </target>  
  70.   <target name="run" depends="build">  
  71.   <exec executable="java">  
  72.   <arg line=" -classpath ${myclasspath} ${appname}" />  
  73.   </exec>  
  74.   </target>  
  75.   <target name="clean">  
  76.   <delete includeEmptyDirs="true">  
  77.   <fileset dir="${build}" />  
  78.   </delete>  
  79.   </target>  
  80.   </project>  
  81.   为了提高程序的可移植性,我们将property分离出来组成build.properties文件。新的build.xml文件和build.properties文件内容如下:   
  82.   build.properties文件:   
  83.   appname=HelloWord  
  84.   srcsrc=src   
  85.   build=classes  
  86.   myclasspath=${basedir}\\${build}    
  87.   build.xml文件(property部分通过file调用build.properties即可):   
  88.   <?xml version="1.0"?>  
  89.   <project default="build" basedir=".">  
  90.   <property file="build.properties" />  
  91.   <target name="build">  
  92.   <mkdir dir="${build}" />  
  93.   <javac srcdir="${src}" destdir="${build}">  
  94.   <include name="**/*.java" />  
  95.   </javac>  
  96.   </target>  
  97.   <target name="run" depends="build">  
  98.   <exec executable="java">  
  99.   <arg line=" -classpath ${myclasspath} ${appname}" />  
  100.   </exec>  
  101.   </target>  
  102.   <target name="clean">  
  103.   <delete includeEmptyDirs="true">  
  104.   <fileset dir="${build}" />  
  105.   </delete>  
  106.   </target>  
  107.   </project>    
  108.   4> 在test目录下运行ant查看执行结果。   
  109.   再运行ant run和ant clean看看会怎么样,:)   
  110.   Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=14018  
  111.   一、 Ant使用实例   
  112.   1.3 ant结合junit进行软件自动测试   
  113.   1> 用ant结合junit启动基本编译和测试的自动过程如下:   
  114.   ★ 执行 JUnit 测试   
  115.   ★ 捕获测试结果,将结果记录到 XML 文件或其它格式的文件   
  116.   ★ 将结果转化为基于 XSL 格式的测试报告   
  117.   ★ 将这个报告转化为 HTML 格式   
  118.   ★ 用电子邮件发送报告   
  119.   一旦捕获结果,就可以使用XML格式化器将每个测试套件运行的故障和错误数,连同软件包和类名还有测试套件的执行时间一起引入。对于每个测试套件,都有以下信息被捕获:   
  120.   ☆ 测试案例的名称    
  121.   ☆ 执行的持续时间   
  122.   ☆ 故障或错误的类型(如果适用)   
  123.   ☆ 任何故障或错误的详细信息   
  124.   2> 本次实例的目录结构:   
  125.   D:\car   主目录   
  126.   \src     源程序目录   
  127.   \classes 编译后的class文件目录   
  128.   \etc     其他   
  129.   \xsl     XSL文件目录   
  130.   首先在D盘创建car目录、src子目录和etc子目录,并从%ANT_HOME%\etc下拷贝junit-noframes.xsl文件至D:\car\etc\xsl子目录下。   
  131.   3> 从http://download.sourceforge.net/junit/junit3.8.zip下载,解压至D盘,将其目录下的junit.jar文件拷贝至%ANT_HOME%\lib目录下。   
  132.   4> 在src子目录下新建Car.java以及testCar.java文件。   
  133.   Car.java的内容如下:   
  134.   //将要被测试的类    
  135.   public class Car   
  136.   {    
  137.   public int getWheels()    
  138.   {    
  139.   return 3;    
  140.   }    
  141.   }   
  142.   testCar.java的内容如下:   
  143.   //执行测试的类   
  144.   import junit.framework.*;    
  145.   public class testCar extends TestCase    
  146.   {    
  147.   protected int expectedWheels;    
  148.   protected Car myCar;    
  149.   public testCar(String name)    
  150.   {    
  151.   super(name);    
  152.   }    
  153.   protected void setUp()    
  154.   {    
  155.   expectedWheels = 4;    
  156.   myCar = new Car();    
  157.   }    
  158.   public static Test suite()    
  159.   {    
  160.   return new TestSuite(testCar.class);    
  161.   }    
  162.   public void testGetWheels()    
  163.   {    
  164.   assertEquals(expectedWheels, myCar.getWheels());    
  165.   }    
  166.   }   
  167.   5> 在build.xml和build.properties文件。   
  168.   buil.properties文件内容如下:   
  169.   srcsrc.dir=src   
  170.   build.dir=classes  
  171.   xsl.dir=etc/xsl   
  172.   reportreport.dir=report   
  173.   build.xml文件内容如下:   
  174.   <?xml version="1.0"?>  
  175.   <project default="build" basedir=".">  
  176.   <property file="build.properties" description="Transfer property from .properties file"/>  
  177.   <target name="build" description="Build the work directory">  
  178.   <mkdir dir="${build.dir}" />  
  179.   <mkdir dir="${report.dir}" />  
  180.   <javac srcdir="${src.dir}" destdir="${build.dir}">  
  181.   <include name="**/*.java" />  
  182.   </javac>  
  183.   </target>  
  184.   <target name="junit" depends="build"  description="Execute Unit Tests">  
  185.   <tstamp/>  
  186.   <junit printsummary="yes">  
  187.   <classpath>  
  188.   <pathelement location="${build.dir}"/>  
  189.   </classpath>  
  190.   <formatter type="xml" />  
  191.   <batchtest todir="${report.dir}">  
  192.   <fileset dir="${src.dir}">  
  193.   <include name="**/testCar.java" />  
  194.   </fileset>  
  195.   </batchtest>  
  196.   </junit>  
  197.   <junitreport todir="${report.dir}">  
  198.   <fileset dir="${report.dir}">  
  199.   <include name="TEST-*.xml"/>  
  200.   </fileset>  
  201.   <report format="noframes" styledir="${xsl.dir}" todir="${report.dir}"/>  
  202.   </junitreport>  
  203.   </target>  
  204.   <target name="clean" description="Delete the work directory">  
  205.   <delete includeEmptyDirs="true">  
  206.   <fileset dir="${build.dir}"/>  
  207.   <fileset dir="${report.dir}"/>  
  208.   </delete>  
  209.   </target>  
  210.   </project>  
  211.   6> 在D:\car目录下运行ant junit,   
  212.   这样在car\report中生成了junit-noframes.html、TESTS-TestSuites.xml和TEST-testCar.xml文件,打开junit-noframes.html查看结果。运行ant clean恢复原状。   
  213.   Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=14019  
  214.   Ant实战篇 (二)   
  215.   作  者:黄 凯           
  216.   E_mail:hk_sz@163.com   
  217.   前 言   
  218.   由于现在公司进行Unit Test Case的整理阶段,所以抽空对Ant和Junit技术进行了一下了解,以下是集合了众家所长之精华(考虑到是按我的思路总结的,也许不能完全表述原作者的思路,所以在参考中我把所有参考过的文章网址或书籍都罗列了出来,大家有时间不妨去看看原文)。   
  219.   如果对Ant部分参数不明白的话,请参看《Ant理论篇》系列或ant自带的文档。   
  220.   在这里要特别感谢我的同事王万鹏为本文档提供demoEJB实例,促使本文档提前完成。同时也要感谢一直以来给以我帮助的葛威龙同事,因为本人英文水准不高,很多不解的地方都得到了他大力的协助。在此特对他们表示衷心的谢意!!!   
  221.   一、 Ant使用实例   
  222.   1.4 ant开发和部署web应用程序   
  223.   1> 前提:   
  224.   ★ 完成《JBuilder9+Weblogic7实战篇之Filter运用篇》,因为这是我们这次打包的实例;   
  225.   ★ 将Filter整个目录拷贝至D盘,我是用Jbuilder编辑的,所以除classes文件夹和Filter.war文件删除外,其他的保留,我们要用到的相关目录结构如下:   
  226.   D:\Filter   
  227.   src java源文件目录   
  228.   Filter   JSP文件及配置文件目录   
  229.   WEB-INF  配置文件目录   
  230.   2> 由于不是在Jbuilder环境进行编译,所以需要在CLASSPATH中定义servlet的路径。首先,我们到   
  231.   http://java.sun.com/products/servlet/download.html   
  232.   下载   
  233.   http://java.sun.com/webapps/download/Redirect/103537442/5847479377282807053505607246086069333228938633594669477228720286350602472859339008063305596058473206-4908/servlet-2_3-fcs-classfiles.zip   
  234.   然后将包含servlet-2_3-fcs-classfiles.zip的整个路径加到CLASSPATH中。   
  235.   3> 在D:\Filter目录下创建build.properties和Filter.xml文件。   
  236.   build.properties文件内容如下:   
  237.   WebLogic.user_projects.mydomain.applications=C:/bea/user_projects/mydomain/applications   
  238.   filter=Filter  
  239.   dest=classes.ant   
  240.   srcsrc=src   
  241.   Filter.xml文件内容如下:   
  242.   <?xml version="1.0"?>  
  243.   <project default="init" basedir=".">  
  244.   <property file="build.properties"/>  
  245.   <target name="init" description="initialization">  
  246.   <mkdir dir="${dest}" />  
  247.   <javac destdir="${dest}">  
  248.   <src path="${src}"/>  
  249.   </javac>  
  250.   </target>  
  251.   <target name="war" depends="init">  
  252.   <war destfile="Filter.war" webxml="${filter}/WEB-INF/web.xml" compress="false">  
  253.   <classes dir="${dest}">  
  254.   <include name="**/*.*"/>  
  255.   </classes>  
  256.   <fileset dir="${filter}">  
  257.   <include name="**/*.*"/>  
  258.   </fileset>  
  259.   </war>  
  260.   </target>  
  261.   <target name="deploy" depends="war">  
  262.   <copy todir="${WebLogic.user_projects.mydomain.applications}">  
  263.   <fileset dir="." includes="Filter.war"/>  
  264.   </copy>  
  265.   </target>    
  266.   <target name="rebuild" depends="clean,war">  
  267.   <copy todir="${WebLogic.user_projects.mydomain.applications}">  
  268.   <fileset dir="." includes="Filter.war"/>  
  269.   </copy>  
  270.   </target>       
  271.   <target name="clean">  
  272.   <delete includeEmptyDirs="true">  
  273.   <fileset dir="${dest}"/>  
  274.   <fileset dir=".">  
  275.   <include name="Filter.war"/>  
  276.   </fileset>  
  277.   <fileset dir="${WebLogic.user_projects.mydomain.applications}">  
  278.   <include name="Filter.war"/>  
  279.   </fileset>  
  280.   </delete>  
  281.   </target>  
  282.   </project>  
  283.   4> 启动Weblogic server,在D:\Filter目录下运行ant deploy -buildfile Filter.xml进行部署,打开IE,在地址栏输入http://localhost:7001/Filter/login.jsp查看是否能正常运行。然后,你可以修改Filter子目录下的login.jsp文件中的代码,运行ant rebuild -buildfile Filter.xml重新部署,然后刷新http://localhost:7001/Filter/login.jsp查看显示修改后的结果是否正确。   
  284.   5> 以上第3步是将web应用程序通过拷贝到%BEA_HOME%\user_projects\mydomain\applications目录下进行部署的,其实ant提供了对应于Weblogic的发布任务<serverdeploy>。请用下面代码替换掉build.properties和Filter.xml文件中的代码。   
  285.   build.properties文件内容如下:   
  286.   WebLogic.user_projects.mydomain.applications=C:/bea/user_projects/mydomain/applications   
  287.   filter=Filter  
  288.   dest=classes.ant   
  289.   srcsrc=src   
  290.   weblogic.server=C:/bea/weblogic700/server   
  291.   username=training  
  292.   user.password=training  
  293.   weblogic.filter=C:/bea/user_projects/mydomain/myserver/upload/Filter   
  294.   Filter.xml文件内容如下:   
  295.   <?xml version="1.0"?>  
  296.   <project default="init" basedir=".">  
  297.   <property file="build.properties"/>  
  298.   <target name="init" description="initialization">  
  299.   <mkdir dir="${dest}" />  
  300.   <javac destdir="${dest}">  
  301.   <src path="${src}"/>  
  302.   </javac>  
  303.   </target>  
  304.   <target name="war" depends="init">  
  305.   <war destfile="Filter.war" webxml="${filter}/WEB-INF/web.xml" compress="false">  
  306.   <classes dir="${dest}">  
  307.   <include name="**/*.*"/>  
  308.   </classes>  
  309.   <fileset dir="${filter}">  
  310.   <include name="**/*.*"/>  
分享到:
评论

相关推荐

    Ant 入门讲解视频

    Ant 在开源软件包和企业里面得到了广泛的应用, ... 在 Netbeans 中使用 ant.&lt;br&gt;文件: &lt;br&gt;ant.exe 7.65 MB 视频 22分3秒&lt;br&gt;AntTest.zip 6.76 KB 项目文件&lt;br&gt;ant.ppt 155 KB 从网上找的 PPT&lt;br&gt;ant.png 视频截图&lt;br&gt;

    swingx包

    HOME\lib directory, and that jUnit.jar is either in that directory as well OR listed on your CLASSPATH.&lt;br&gt;&lt;br&gt;You can build SwingX by going to the command line and typing&lt;br&gt;ant&lt;br&gt;&lt;br&gt;That should be...

    jive.chm

    1 应用Struts的网站建设 &lt;br&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;Java基础&lt;br&gt; 1 20个Java基础Tips &lt;br&gt; 2 abstract,static,final修饰符 &lt;br&gt; 3 ChinaUnix.net Java精华贴 &lt;br&gt; 4 ANT学习笔记 &lt;br&gt; 5 极度性能调整 &lt;br&gt;&lt;br&gt; &lt;br&gt;FAQs&lt;br&gt;...

    Ant使用指南

    不管您当前是否在使&lt;br&gt;用某种不同的生成工具,或者根本就没有使用生成工具,了解关于 Ant 的更多知识或许会促使您转而使用它。 &lt;br&gt;如果已经在使用 Ant,那么您仍然可能在本教程中发现一些有趣的东西。或许您会发现...

    java网络对战的国际象棋源码

    &lt;br&gt;&lt;br&gt;一、用ant编译源码(所有源文件及目录结构请下载)&lt;br&gt;&lt;br&gt;C:\cs&gt;ant compile&lt;br&gt;Buildfile: build.xml&lt;br&gt;&lt;br&gt;compile:&lt;br&gt;[mkdir] Created dir: C:\cs\build&lt;br&gt;[javac] Compiling 60 source files to C:\cs...

    chires开发包

    -------------------------------------&lt;br&gt;&lt;br&gt;&lt;br&gt;First download aspectwerkz 1.0 and JDK 1.5&lt;br&gt;&lt;br&gt;&lt;br&gt;Install JDK 1.5 if you haven't already&lt;br&gt;&lt;br&gt;&lt;br&gt;Run 'ant dist' in the aspectwerkz directory&lt;br&gt;...

    chires包

    -------------------------------------&lt;br&gt;&lt;br&gt;&lt;br&gt;First download aspectwerkz 1.0 and JDK 1.5&lt;br&gt;&lt;br&gt;&lt;br&gt;Install JDK 1.5 if you haven't already&lt;br&gt;&lt;br&gt;&lt;br&gt;Run 'ant dist' in the aspectwerkz directory&lt;br&gt;...

    Proguard4.2.zip(java编码混淆器)

    &lt;br&gt;&lt;br&gt; javac -sourcepath src -d classes -classpath lib/ant.jar \&lt;br&gt; src/proguard/ant/ProGuardTask.java&lt;br&gt;&lt;br&gt;If you want to compile the JME WTK obfuscator plug-in:&lt;br&gt;&lt;br&gt; javac -sourcepath src -d...

    hibernate 教程

    用Ant来增量更新schema(Using Ant for incremental schema updates)&lt;br&gt;15.2. 代码生成(Code Generation)&lt;br&gt;15.2.1. 配置文件(可选)&lt;br&gt;15.2.2. meta属性&lt;br&gt;15.2.3. 基本的finder生成器(Basic finder ...

    activation等jar

    当前rar包含一下jar包,很多都是我在网上苦苦寻觅而得的,希望对大家有所帮助&lt;br&gt;activation.jar&lt;br&gt;axis.jar&lt;br&gt;axis-ant.jar&lt;br&gt;axis-schema.jar&lt;br&gt;bc-cog-jglobus.jar&lt;br&gt;bcprov-jdk14.jar&lt;br&gt;borlandxml.jar&lt;br&gt;...

    金州情缘交友网源程序

    修改了成功故事不能发评论的问题 &lt;br&gt;15,修改了普通会员不能添加成功故事的问题 &lt;br&gt;16,修正了成功故事不能记录阅读次数和评论次数的问题 &lt;br&gt;17,修正后台添加地区后点转到第几页时页面不能刷新问题&lt;br&gt;18,修正...

    Eclipse in action

    Working with source code in Eclipse&lt;br&gt;Chapter 5 ■ Building with Ant&lt;br&gt;Chapter 6 ■ Source control with CVS&lt;br&gt;Chapter 7 ■ Web development tools&lt;br&gt;PART II EXTENDING ECLIPSE&lt;br&gt;Chapter 8 ■ ...

    Ant权威指南

    --------------------------------------&lt;br&gt;Ant权威指南----希望此书对你的开发有所帮助。&lt;br&gt;--------------------------------------&lt;br&gt;如果觉得此书好,请购买此书。&lt;br&gt;支持正版。&lt;br&gt;-----------------------...

    分离自Ant的ZIP包可解决中文文件名处理问题

    这个名是名离自ant原码的,由于java.util.zip处理中文文件名时有问题可以用这个包代替那个使用...&lt;br&gt;&lt;br&gt;特点:&lt;br&gt;一、自有原码不依赖ant.jar&lt;br&gt;二、支持中文文件名(压缩和解压都支持)&lt;br&gt;三、支持对目录压缩&lt;br&gt;

    mtdorb_1.0beta6

    mail with subject 'subscribe' to corba@m-g.ru&lt;br&gt;&lt;br&gt;We recommend that you place the MTDORB_UCUtils.dll ( or MTDORB_UCUtils.so for Linux)&lt;br&gt;in the Windows\System directory (or Windows\System32 for ...

    tankwar_java

    引入了用于ant重构工程的build.xml文件(已经写好,并且有注释)可以帮助您轻松生成各种文档,测试报告文档,jar包等..&lt;br&gt;&lt;br&gt;3.整个java文件关键步骤也有相对详细的注释。&lt;br&gt;&lt;br&gt;大家应该能轻松看懂吧呵呵。

    Hibernate v3.2中文参考手册

    &lt;br&gt;&lt;br&gt;阅读第 1 章 Hibernate入门 ,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,你可以在doc/reference/tutorial/目录下找到。 &lt;br&gt;&lt;br&gt;阅读第 2 章 体系结构(Architecture)来理解...

    基于VUE的在线绘制流程图工具

    VUE FLOW DESIGN流程设计器,基于Vue + Ant Design Vue + JSPlumb,该组件目的是为了使用在Vue项目中,它前身是原生版流程设计器。 使用教程 在你的项目根目录下安装vfd: npm install vfd --save 在代码中引用,...

    Hibernate3.2官方中文参考手册

    &lt;br&gt;&lt;br&gt;阅读第 1 章 Hibernate入门 ,这是一篇包含详细的逐步指导的指南。本指南的源代码包含在发行包中,你可以在doc/reference/tutorial/目录下找到。 &lt;br&gt;&lt;br&gt;阅读第 2 章 体系结构(Architecture)来理解...

    JCreator 4.0

    &lt;br&gt;特点: &lt;br&gt;1.可无限撤销、代码缩进、自动类库方法提示、按所选智能定位查阅JavaAPI文档等功能。 &lt;br&gt;2.新版采用仿VS2005界面设计,体验感觉更快更好更易用。 &lt;br&gt;3.支持JSP、Ant、CVS。 &lt;br&gt;4.小巧、易用、...

Global site tag (gtag.js) - Google Analytics