核心提示:实现的主要功能是:自动从cvs中check out模块,然后编译,把编译后的class打成jar,再commit到cvs服务器的指定位置。 build.xml ? xml version = 1.0 ? project name = gntAutobuild basedir = . default = build !--TheCVSROOTvalue-- property name = cvsr
实现的主要功能是:自动从cvs中check out模块,然后编译,把编译后的class打成jar,再commit到cvs服务器的指定位置。
build.xml
<?xml version="1.0"?>
<project name="gnt Auto build" basedir="." default="build">
<!-- The CVSROOT value -->
<property name="cvsroot" value=":pserver:dhf:@192.168.0.200:D:/cvs_repository_z"/>
<property name="cvs.password" value=""/>
<property name="ywzcpt.dir" value="${basedir}/ywzcpt"/>
<property name="ywzcpt.module.name" value="ywzcpt"/>
<property name="zfyw.dir" value="${basedir}/zfyw"/>
<property name="zfyw.module.name" value="zfyw"/>
<property name="external.dir" value="${basedir}/external"/>
<property name="external.module.name" value="external"/>
<property name="cvs-op" value="co " />
<!-- Initializing -->
<target name="init">
<tstamp>
<format property="today" pattern="yyyy-MM-dd hh:mm:ss"/>
</tstamp>
<echo message="${today}" />
</target>
<target name="prepare" depends="init" >
<cvspass cvsroot="${cvsroot}" password="${cvs.password}" passfile="ant-cvs.cvspass"/>
</target>
<target name="external-check-out" depends="prepare">
<cvs cvsRoot="${cvsroot}" package="${external.module.name}"
passfile="ant-cvs.cvspass"/>
</target>
<!-- Retrieve the ywzcpt module -->
<target name="ywzcpt-check-out" depends="external-check-out">
<delete dir="${ywzcpt.module.name}"/>
<cvs cvsRoot="${cvsroot}" package="${ywzcpt.module.name}"
passfile="ant-cvs.cvspass"/>
</target>
<target name="zfyw-check-out" depends="external-check-out">
<delete dir="${zfyw.module.name}"/>
<cvs cvsRoot="${cvsroot}" package="${zfyw.module.name}"
passfile="ant-cvs.cvspass"/>
</target>
<!-- cvs checkout -->
<target name="check-out">
<antcall target="external-check-out" />
<antcall target="ywzcpt-check-out" />
<antcall target="zfyw-check-out" />
</target>
<!-- build XSP framework -->
<target name="build">
<echo message="+=============================================+" />
<echo message="| Start Building GNT for compilation |" />
<echo message="+=============================================+" />
<antcall target="ywzcpt-build" />
<echo message="+=============================================+" />
<echo message="| End Building GNT for compilation |" />
<echo message="+=============================================+" />
</target>
<target name="ywzcpt-build" depends="ywzcpt-check-out">
<echo message="+---------------------------------------------+" />
<echo message="| Start Building ywzcpt for compilation |" />
<echo message="+---------------------------------------------+" />
<ant antfile="build.xml" dir="${ywzcpt.module.name}" output="ywzcpt.log" />
<property name="ywzcpt.add" value="add ./build/log/*.log ./build/*.jar ./build/*.war"/>
<property name="ywzcpt.commit" value="commit -m '${today}' ./build/log/*.log ./build/*.jar ./build/*.war"/>
<ant antfile="build.xml" dir="${ywzcpt.module.name}" target="commit-build" />
<echo message="+---------------------------------------------+" />
<echo message="+ End Building ywzcpt for compilation |" />
<echo message="+---------------------------------------------+" />
</target>
<target name="zfyw-build" depends="zfyw-check-out, ywzcpt-build">
<echo message="+---------------------------------------------+" />
<echo message="| Start Building ywzcpt for compilation |" />
<echo message="+---------------------------------------------+" />
<ant antfile="build.xml" dir="${zfyw.module.name}" output="zfyw.log" />
<property name="zfyw.add" value="add ./build/log/*.log ./build/*.jar ./build/*.war"/>
<property name="zfyw.commit" value="commit -m '${today}' ./build/log/*.log ./build/*.jar ./build/*.war"/>
<ant antfile="build.xml" dir="${zfyw.module.name}" target="commit-build" />
<echo message="+---------------------------------------------+" />
<echo message="+ End Building ywzcpt for compilation |" />
<echo message="+---------------------------------------------+" />
</target>
<target name="clean" >
<delete dir="${ywzcpt.module.name}"/>
</target>
</project>
ywzcpt/build.xml片断:
代码
<!-- 主要实现commit功能 -->
<target name="commit-build">
<cvs cvsRoot="${cvsroot}" passfile="${root.dir}/ant-cvs.cvspass"
command="${ywzcpt.add}"/>
<cvs cvsRoot="${cvsroot}" passfile="${root.dir}/ant-cvs.cvspass"
command="${ywzcpt.commit}"/>
</target>
本文介绍了一个使用Ant脚本自动完成从CVS检出代码、编译、打包并提交回CVS的过程。通过配置build.xml文件,实现了ywzcpt和zfyw两个模块的自动化构建流程。
197

被折叠的 条评论
为什么被折叠?



