每日构建,是业界比较认可的开发方式,每天将开发人员的代码成果提交,然后编译、测试。不但可以及时了解到开发的情况,保证项目进度,也使项目开发人员养成了良好的习惯。以前的项目是使用CC做配置管理,最近负责的一个使用VSS,以前的ant脚本无法使用,查了一些资料,终于把机制建立起来了。
<target name="clean">
<delete dir="${VOB_PATH}/SIMP1.0.1.0/OA_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/PLT_BIZ_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/PLT_COMMON_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/PLT_DB_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/PLT_FRAMEWORK_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/VIEW_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/test"/>
</target>
<!--从Vss里面取出最新的源代码-->
<target depends="" name="update_vss">
<echo message="取最新源代码"/>
<vssget localPath="${VOB_PATH}/SIMP1.0.1.0/OA_SRC" recursive="true" login="xufei,xufei"
vsspath="$/01_产品开发/02_版本级文档/07_源代码/SIMP1.0.1.0/OA_SRC" ssdir="${vss.ssdir}" serverpath="${vss.svrdir}" writable="true"/>
<vssget localPath="${VOB_PATH}/SIMP1.0.1.0/PLT_BIZ_SRC" recursive="true" login="xufei,xufei"
vsspath="$/01_产品开发/02_版本级文档/07_源代码/SIMP1.0.1.0/PLT_BIZ_SRC" ssdir="${vss.ssdir}" serverpath="${vss.svrdir}" writable="true"/>
</target>
<!--自定义ant任务 检查日志错误-->
<target name="checkjava">
<echo message="开始检查java编译错误..."/>
<ci_checkjava javalog="${JAVA_LOG}" message="因为java文件编译存在错误,所以退出单元测试。"/>
</target>
<!--进行单元测试-->
<target name="unittest" unless="java.error">
<echo message="开始单元测试..."/>
<record name="${UNIT_LOG}" action="start"/>
<javac destdir="${MAIN_DIR}/test/classes" nowarn="on" encoding="GBK" failonerror="false">
<classpath refid="simp_depend_lib_path"/>
<classpath path="${MAIN_DIR}/classes"/>
<src refid="simp_test_path"/>
</javac>
<junit fork="on" printsummary="yes">
<classpath refid="simp_depend_lib_path"/>
<classpath>
<pathelement location="${MAIN_DIR}/classes"/>
<pathelement location="${MAIN_DIR}/test/classes"/>
</classpath>
<formatter type="plain"/>
<batchtest fork="no" todir="${MAIN_DIR}/test/result">
<fileset dir="${VOB_PATH}/code/commonstest">
<include name="**/*Test.java"/>
</fileset>
<fileset dir="${VOB_PATH}/code/eaftest">
<include name="**/*Test.java"/>
</fileset>
</batchtest>
</junit>
<junitreport todir="${MAIN_DIR}/reports">
<fileset dir="${MAIN_DIR}/test/result">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${MAIN_DIR}/reports"/>
</junitreport>
<record name="${UNIT_LOG}" action="stop"/>
</target>
<!--编译java代码-->
<target name="compilejava">
<property name="java.compile.fail" value="vv"/>
<property name="enablecall" value="true"/>
<ci_echo>编译java代码</ci_echo>
<record name="${MAIN_DIR}/java.log" action="start"/>
<copy todir="${MAIN_DIR}/classes">
<fileset dir="${VOB_PATH}/SIMP1.0.1.0/OA_SRC">
<include name="**/*.xml"/>
</fileset>
<fileset dir="${VOB_PATH}/SIMP1.0.1.0/PLT_BIZ_SRC">
<include name="**/*.xml"/>
</fileset>
</copy>
<javac failonerror="false" destdir="${MAIN_DIR}/classes" nowarn="on" encoding="GBK">
<classpath refid="simp_depend_lib_path"/>
<src refid="simp_src_path"/>
<include name="**/*.java"/>
<exclude name="**/vssver.scc"/>
</javac>
<record name="${MAIN_DIR}/java.log" action="stop"/>
</target>
<!--编译jsp-->
<target name="compilejsp" unless="java.error">
<property name="enablecall" value="true"/>
<ci_echo>编译jsp代码</ci_echo>
<record name="${MAIN_DIR}/jsp.log" action="start"/>
<java classname="weblogic.jspc" fork="true">
<arg line="-webapp ${JSP_PATH}/admin -compileAll -d ${MAIN_DIR}/jspc/admin -k *.jsp"/>
<classpath refid="simp_depend_lib_path"/>
<classpath>
<pathelement path="${MAIN_DIR}/classes"/>
<pathelement location="../lib/tools.jar"/>
</classpath>
</java>
<record name="${MAIN_DIR}/jsp.log" action="stop"/>
</target>
<target name="checkstyle">
<checkstyle config="${CHECKSTYLEDIR}/sims_checks_eclipse.xml">
<fileset dir="${VOB_PATH}/SIMP1.0.1.0" includes="**/*.java"/>
<formatter type="xml" toFile="${CHECKSTYLEDIR}/report/report.xml"/>
</checkstyle>
<style in="${CHECKSTYLEDIR}/report/report.xml" out="${CHECKSTYLEDIR}/report/report.html" style="${CHECKSTYLEDIR}/contrib/checkstyle-frames.xsl"/>
</target>
<!--自定义ant任务 检查日志是否有错误,没有错误则发送编译成功邮件-->
<target name="mail">
<ci_echo>开始发送Email.</ci_echo>
<property name="enablecall" value="true"/>
<ci_simplemail proj_name="${PROJ_NAME}" subject="#USERNAME#,请检查代码" mailhost="${MAIL_HOST}" user="${USER}" password="${PASSWD}" messagemimetype="text/html" javalog="${JAVA_LOG}" jsplog="${JSP_LOG}" junitlog="${UNIT_LOG}">
<from address="${SENDER}"/>
<cc address="${CC_ADDR}"/>
<fileset dir="${MAIN_DIR}">
<include name="*.log"/>
</fileset>
</ci_simplemail>
</target>
基于VSS日构建的主要脚本:
<target name="clean">
<delete dir="${VOB_PATH}/SIMP1.0.1.0/OA_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/PLT_BIZ_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/PLT_COMMON_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/PLT_DB_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/PLT_FRAMEWORK_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/VIEW_SRC"/>
<delete dir="${VOB_PATH}/SIMP1.0.1.0/test"/>
</target>
<!--从Vss里面取出最新的源代码-->
<target depends="" name="update_vss">
<echo message="取最新源代码"/>
<vssget localPath="${VOB_PATH}/SIMP1.0.1.0/OA_SRC" recursive="true" login="xufei,xufei"
vsspath="$/01_产品开发/02_版本级文档/07_源代码/SIMP1.0.1.0/OA_SRC" ssdir="${vss.ssdir}" serverpath="${vss.svrdir}" writable="true"/>
<vssget localPath="${VOB_PATH}/SIMP1.0.1.0/PLT_BIZ_SRC" recursive="true" login="xufei,xufei"
vsspath="$/01_产品开发/02_版本级文档/07_源代码/SIMP1.0.1.0/PLT_BIZ_SRC" ssdir="${vss.ssdir}" serverpath="${vss.svrdir}" writable="true"/>
</target>
<!--自定义ant任务 检查日志错误-->
<target name="checkjava">
<echo message="开始检查java编译错误..."/>
<ci_checkjava javalog="${JAVA_LOG}" message="因为java文件编译存在错误,所以退出单元测试。"/>
</target>
<!--进行单元测试-->
<target name="unittest" unless="java.error">
<echo message="开始单元测试..."/>
<record name="${UNIT_LOG}" action="start"/>
<javac destdir="${MAIN_DIR}/test/classes" nowarn="on" encoding="GBK" failonerror="false">
<classpath refid="simp_depend_lib_path"/>
<classpath path="${MAIN_DIR}/classes"/>
<src refid="simp_test_path"/>
</javac>
<junit fork="on" printsummary="yes">
<classpath refid="simp_depend_lib_path"/>
<classpath>
<pathelement location="${MAIN_DIR}/classes"/>
<pathelement location="${MAIN_DIR}/test/classes"/>
</classpath>
<formatter type="plain"/>
<batchtest fork="no" todir="${MAIN_DIR}/test/result">
<fileset dir="${VOB_PATH}/code/commonstest">
<include name="**/*Test.java"/>
</fileset>
<fileset dir="${VOB_PATH}/code/eaftest">
<include name="**/*Test.java"/>
</fileset>
</batchtest>
</junit>
<junitreport todir="${MAIN_DIR}/reports">
<fileset dir="${MAIN_DIR}/test/result">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${MAIN_DIR}/reports"/>
</junitreport>
<record name="${UNIT_LOG}" action="stop"/>
</target>
<!--编译java代码-->
<target name="compilejava">
<property name="java.compile.fail" value="vv"/>
<property name="enablecall" value="true"/>
<ci_echo>编译java代码</ci_echo>
<record name="${MAIN_DIR}/java.log" action="start"/>
<copy todir="${MAIN_DIR}/classes">
<fileset dir="${VOB_PATH}/SIMP1.0.1.0/OA_SRC">
<include name="**/*.xml"/>
</fileset>
<fileset dir="${VOB_PATH}/SIMP1.0.1.0/PLT_BIZ_SRC">
<include name="**/*.xml"/>
</fileset>
</copy>
<javac failonerror="false" destdir="${MAIN_DIR}/classes" nowarn="on" encoding="GBK">
<classpath refid="simp_depend_lib_path"/>
<src refid="simp_src_path"/>
<include name="**/*.java"/>
<exclude name="**/vssver.scc"/>
</javac>
<record name="${MAIN_DIR}/java.log" action="stop"/>
</target>
<!--编译jsp-->
<target name="compilejsp" unless="java.error">
<property name="enablecall" value="true"/>
<ci_echo>编译jsp代码</ci_echo>
<record name="${MAIN_DIR}/jsp.log" action="start"/>
<java classname="weblogic.jspc" fork="true">
<arg line="-webapp ${JSP_PATH}/admin -compileAll -d ${MAIN_DIR}/jspc/admin -k *.jsp"/>
<classpath refid="simp_depend_lib_path"/>
<classpath>
<pathelement path="${MAIN_DIR}/classes"/>
<pathelement location="../lib/tools.jar"/>
</classpath>
</java>
<record name="${MAIN_DIR}/jsp.log" action="stop"/>
</target>
<target name="checkstyle">
<checkstyle config="${CHECKSTYLEDIR}/sims_checks_eclipse.xml">
<fileset dir="${VOB_PATH}/SIMP1.0.1.0" includes="**/*.java"/>
<formatter type="xml" toFile="${CHECKSTYLEDIR}/report/report.xml"/>
</checkstyle>
<style in="${CHECKSTYLEDIR}/report/report.xml" out="${CHECKSTYLEDIR}/report/report.html" style="${CHECKSTYLEDIR}/contrib/checkstyle-frames.xsl"/>
</target>
<!--自定义ant任务 检查日志是否有错误,没有错误则发送编译成功邮件-->
<target name="mail">
<ci_echo>开始发送Email.</ci_echo>
<property name="enablecall" value="true"/>
<ci_simplemail proj_name="${PROJ_NAME}" subject="#USERNAME#,请检查代码" mailhost="${MAIL_HOST}" user="${USER}" password="${PASSWD}" messagemimetype="text/html" javalog="${JAVA_LOG}" jsplog="${JSP_LOG}" junitlog="${UNIT_LOG}">
<from address="${SENDER}"/>
<cc address="${CC_ADDR}"/>
<fileset dir="${MAIN_DIR}">
<include name="*.log"/>
</fileset>
</ci_simplemail>
</target>
2万+

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



