利用Ant实现项目自动构建测试备份并发布到项目web(4)
<target name="package" depends="junit">
<jar jarfile="${dest.dir}/${project.name.info}-${project.version.info}-N${DSTAMP}.${project.package.type.info}"
basedir="${bin.dir}" />
</target>
<target name="backup" depends="package">
<zip destfile="${bak.dir}/${project.name.info}-${project.version.info}-N${DSTAMP}.zip">
<zipfileset file="${base.dir}/build.xml" />
<zipfileset file="${dest.dir}/${project.name.info}-${project.version.info}-N${DSTAMP}.${project.package.type.info}" />
<zipfileset dir="${src.dir}" prefix="src/"/>
<zipfileset dir="${bin.dir}" prefix="bin/" />
<zipfileset dir="${doc.dir}" prefix="doc/" />
<zipfileset dir="${code.dir}" prefix="code/" />
<zipfileset dir="${lib.dir}" prefix="lib/" />
<zipfileset dir="${juit.report.dir}" prefix="JunitReport/"/>
</zip>
</target>
<target name="email" depends="backup">
</target>
以上内容是把应用打包备份等(jar/zip都是ant内置支持的)。Email这一段我使空着的,因为当前这个项目只有我一个人开发,所以我也不会给自己发email,如果你是一个团队开发异地开发,倒是可以利用这个将测试结果或者其他你想发的东西发送给你指定的人,而我的这个脚本要直接把开发结果发送到web上去,所以email功能对我来说也许是多余的。
<target name="dest" depends="email">
<copy todir="${web.code.dir}">
<fileset dir="${code.dir}" />
</copy>
<copy todir="${web.doc.dir}">
<fileset dir="${doc.dir}" />
</copy>
<copy todir="${web.old.dir}">
<fileset dir="${bak.dir}">
<include name="${project.name.info}-${project.version.info}-N${DSTAMP}.zip"/>
</fileset>
</copy>
<copy todir="${web.src.dir}">
<fileset dir="${src.dir}" />
</copy>
<copy todir="${web.report.dir}">
<fileset dir="${juit.report.dir}/html" />
</copy>
<copy todir="${web.bin.dir}">
<fileset dir="${dest.dir}">
<include name="${project.name.info}-${project.version.info}-N${DSTAMP}.${project.package.type.info}"/>
</fileset>
</copy>
</target>
将刚才生成的乱七八糟的东西copy到指定的地方去,完成部署,这样我的脚本就完成了。最后别忘了再脚本的最后面添加</project>,这样才符合xml文档的格式。
在这个脚本里我实现了项目Api文档的生成,在线java代码的生成,编译,测试,打包,备份,部署到web等,我个人觉得这个已经满足一般的项目需求了,当然你也可以根据以上内容进行扩充,例如利用ant对cvs的内置支持实现版本控制,或者每日构建等(每日构建可是微软的看家法宝,而且xp编程每日构建只是最低要求,以上纯是道听途说)。发挥你的想象力去重复利用ant给你带来的乐趣和成就感吧。
还是那句老话,没有你做不到,只有你想不到。
以上内容iBeyond版权所有(注ibeyond和beyondii是同一个人,从名字上就可以看出),你也许可以从www.ibeyond.org得到相关信息,也可以通过admin@ibeyond.org和我联系。