利用Ant实现项目自动构建测试备份并发布到项目web(3)

类别:Java 点击:0 评论:0 推荐:

利用Ant实现项目自动构建测试备份并发布到项目web(3)

<taskdef name="java2html" classname="com.java2html.Java2HTMLTask" />

           <target name="javacode" depends="javadoc">

                      <java2html title="${project.name.info}version(${project.version.info}) Source Code Online View"

                                 simple="no"

                                 tabsize="4"

                                 marginsize="2"

                                 header="true"

                                 footer="true"

                                 encoding="UTF-8"

                                 destination="${code.dir}">

                                 <fileset dir="${src.dir}">

                                            <include name="**/*.java"/>

                                 </fileset>

                                 <javadoc localRef="${doc.dir}" />

                      </java2html>

           </target>

           又来了一个新的关键字taskdef,这个是用来做什么的呢?听我慢慢道来。

古人云:“人无完人”,ant的开发者也是这样,他不可能预见到所有用户的需求,也就不能知道当前用户需要哪些task,肯定就会出现用户希望得到的task而ant默认没有支持的情况,所以ant的开发者提供了一个借口,可以让用户自定义自己的task,然后通过taskdef来声明(对要为开发者的这个想法击节叫好,用汤司令了一句名言“高,实在是高”),这样就实现了ant的无限扩展了。Taskdef至少要指明name和classname。Name用来指定这个task的任务的标签名,像javadoc这样的就是标签名(javadoc是ant内置的task),classpath就是这个标签名的要执行的类的方法名,关于这个扩展task的开发我会在其他文章中阐述的,这里就到此为止,大家心里有这个印象就可以了(java2html可以看出是一个把java代码转换成html文档的工具,我使用的是我的修改版,可以支持字符编码,详情见拙著的〈java2html改造手记〉系列文章,当前我已经开发了java2html的图形界面,同样我会另外撰文阐述)。

           <target name="compile" depends="init">

                      <javac srcdir="${src.dir}"

                                 destdir="${bin.dir}"

                                 encoding="${project.encoding.info}"

                                 debug="off"

                                 optimize="on">

                                 <classpath refid="appClassPath" />

                      </javac>

           </target>

           这个也很简单,就是一个编译。

<target name="junit" depends="compile">

                      <junit  printsummary="yes" fork="yes" haltonfailure="no">

                                 <classpath>

                                            <pathelement location="${bin.dir}"/>

                                            <pathelement path="${java.class.path}"/>

                                 </classpath>

                                 <formatter type="xml"/>

                                 <batchtest todir="${juit.report.dir}/xml/${DSTAMP}">

                                            <fileset dir="${bin.dir}">

                                                       <include name="**/*Test.class" />

                              </fileset>

                                 </batchtest>

                      </junit>

                      <junitreport todir="${juit.report.dir}/xml/${DSTAMP}">

                                 <fileset dir="${juit.report.dir}/xml/${DSTAMP}">

                                            <include name="TEST-*.xml"/>

                                 </fileset>

                                 <report format="noframes" todir="${juit.report.dir}/html/${DSTAMP}"/>

                      </junitreport>

           </target>

           这是一个测试target。执行全部的测试代码,并把测试结果生成xml文档并将这个xml文档转换成html文档,junit也是ant默认支持的(java的开源社区的力量实在是太强大了,向广大的开源社区的同志们致敬)。

本文地址:http://com.8s8s.com/it/it17256.htm