<!--ant example -->
<!-- ant/lib/下必须有以下三个包:svnant.jar;svnClientAdapter.jar;svnjavahl.jar,同时Subversion/bin应在classpath中-->
<?xml version="1.0" encoding="UTF-8"?>
<project name="syhcrm" basedir="./" default="updatemaker">
<property id="srcDir" name="srcDir" value="${basedir}/src"></property>
<property id="webDir" name="webDir" value="${basedir}/DefaultWebApp"></property>
<property id="libDir" name="libDir" value="${basedir}/lib"></property>
<property id="buildDir" name="buildDir" value="${basedir}/build"></property>
<property id="classesDir" name="classesDir" value="${buildDir}/classes"></property>
<property id="tempClassesDir" name="tempClassesDir" value="${buildDir}/tempclasses"></property>
<property id="ejbDir" name="ejbDir" value="${buildDir}/ejb"></property>
<property id="javaDir" name="javaDir" value="${srcDir}/java"></property>
<property id="resourceDir" name="resourceDir" value="${srcDir}/resource"></property>
<property id="xmlDir" name="xmlDir" value="${resourceDir}/xml"></property>
<property id="propertiesDir" name="propertiesDir" value="${resourceDir}/properties"></property>
<property id="hcrmEJB" name="hcrmEJB" value="hcrmEJB.jar"></property>
<property id="hospitalEJB" name="hospitalEJB" value="hospitalEJB.jar"></property>
<property id="destDir" name="destDir" value="${basedir}/dest"></property>
<property id="svnUrl" name="svnUrl" value="svn://192.168.1.2/hcrm/codes/syhcrm"></property>
<property id="svnUser" name="svnUser" value="lgq"></property>
<property id="svnPassword" name="svnPassword" value="111111"></property>
<tstamp prefix="today.">
<format property="now" pattern="MM/dd/yyyy HH:mm aa" locale="en,US"/>
</tstamp>
<property name="updateBegainDate" value="05/10/2008 00:00 AM"/>
<property name="updateEndDate" value="${today.now}"/>
<path id="project.classpath" >
<fileset dir="${libDir}">
<include name="*.jar"/>
<include name="*.zip"/>
</fileset>
</path>
<target name="clean">
<delete dir="${buildDir}"/>
<delete dir="${destDir}"/>
<delete dir="${srcDir}"/>
<delete dir="${webDir}"/>
</target>
<target name="init" depends="clean">
<mkdir dir="${buildDir}"/>
<mkdir dir="${classesDir}"/>
<mkdir dir="${tempClassesDir}"/>
<mkdir dir="${destDir}"/>
</target>
<typedef id="svn" name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpath="svnant.jar"/>
<target name="getVersion" depends="init">
<echo message="Getting Version ..."/>
<svn javahl="true" username="${svnUser}" password="${svnPassword}" >
<export srcurl="${svnUrl}/src" force="true" destPath="${srcDir}" revision="header" />
</svn>
<svn javahl="true" username="${svnUser}" password="${svnPassword}" >
<export srcurl="${svnUrl}/DefaultWebApp" force="true" destPath="${webDir}" revision="header"/>
</svn>
<svn javahl="true" username="${svnUser}" password="${svnPassword}" >
<export srcurl="${svnUrl}/lib" force="true" destPath="${libDir}" />
</svn>
</target>
<target name="compile" depends="compileAll">
<echo message="beginDate: ${updateBegainDate}"/>
<echo message="endDate: ${updateEndDate}"/>
<delete dir="${basedir}/updateSrc"/>
<mkdir dir="${basedir}/updateSrc"/>
<copy todir="${basedir}/updateSrc" includeemptydirs="false">
<fileset dir="${javaDir}">
<and>
<date when="after" datetime="${updateBegainDate}"/>
</and>
<and>
<date when="before" datetime="${updateEndDate}"/>
</and>
</fileset>
</copy>
<javac srcdir="${basedir}/updateSrc" listfiles="on" destdir="${tempClassesDir}" failonerror="true" source="1.4" target="1.4" memoryinitialsize="128m" memorymaximumsize="512m">
<include name="**/*.java" />
<classpath refid="project.classpath" />
<classpath path="${classesDir}"/>
</javac>
</target>
<target name="compileAll" depends="getVersion">
<javac srcdir="${javaDir}" destdir="${classesDir}" failonerror="true" source="1.4" target="1.4" memoryinitialsize="128m" memorymaximumsize="512m">
<include name="**/*.java" />
<classpath refid="project.classpath" />
</javac>
</target>
<target name="test" depends="compile">
<echo message="testing ..."/>
</target>
<target name="deploy" depends="test">
<echo message="HCRM Deploying ..."/>
<copy todir="${destDir}/DefaultWebApp" includeemptydirs="false">
<fileset dir="${webDir}"/>
</copy>
<copy todir="${destDir}/DefaultWebApp/WEB-INF/classes" overwrite="true" includeemptydirs="false">
<fileset dir="${classesDir}"/>
</copy>
<copy todir="${destDir}/DefaultWebApp/${hospitalEJB}" includeemptydirs="false">
<fileset dir="${classesDir}">
<include name="hjit/mail/*.class"/>
</fileset>
</copy>
<copy todir="${destDir}/DefaultWebApp/${hcrmEJB}" includeemptydirs="false">
<fileset dir="${classesDir}">
<include name="hcrm/report/ejb/*.class"/>
</fileset>
</copy>
<copy todir="${destDir}/hjset">
<fileset dir="${xmlDir}/hjset"/>
</copy>
</target>
<target name="updatemaker" depends="deploy">
<tstamp prefix="update.">
<format property="dateSign" pattern="yyyy-MM-dd"/>
</tstamp>
<echo message="start date:${updateBegainDate}"/>
<echo message="end date:${updateEndDate}"/>
<delete dir="upate${update.dateSign}"/>
<mkdir dir="upate${update.dateSign}"/>
<copy todir="upate${update.dateSign}/DefaultWebApp" includeemptydirs="false">
<fileset dir="${webDir}">
<and>
<date when="after" datetime="${updateBegainDate}"/>
</and>
<and>
<date when="before" datetime="${updateEndDate}"/>
</and>
</fileset>
</copy>
<copy todir="upate${update.dateSign}/DefaultWebApp/WEB-INF/classes" overwrite="true" includeemptydirs="false">
<fileset dir="${tempClassesDir}"/>
</copy>
<delete dir="upate${update.dateSign}/DefaultWebApp/${hospitalEJB}"/>
<mkdir dir="upate${update.dateSign}/DefaultWebApp/${hospitalEJB}"/>
<copy todir="upate${update.dateSign}/DefaultWebApp/${hospitalEJB}" overwrite="true" includeemptydirs="false">
<fileset dir="${tempClassesDir}">
<include name="hjit/mail/*.class"/>
</fileset>
</copy>
<delete dir="upate${update.dateSign}/DefaultWebApp/${hcrmEJB}"/>
<mkdir dir="upate${update.dateSign}/DefaultWebApp/${hcrmEJB}"/>
<copy todir="upate${update.dateSign}/DefaultWebApp/${hcrmEJB}" includeemptydirs="false">
<fileset dir="${tempClassesDir}">
<include name="hcrm/report/ejb/*.class"/>
</fileset>
</copy>
<copy todir="upate${update.dateSign}/hjset" includeemptydirs="false">
<fileset dir="${xmlDir}/hjset" >
<and>
<date when="after" datetime="${updateBegainDate}"/>
</and>
<and>
<date when="before" datetime="${updateEndDate}"/>
</and>
</fileset>
</copy>
</target>
</project>
<!-- ant/lib/下必须有以下三个包:svnant.jar;svnClientAdapter.jar;svnjavahl.jar,同时Subversion/bin应在classpath中-->
<?xml version="1.0" encoding="UTF-8"?>
<project name="syhcrm" basedir="./" default="updatemaker">
<property id="srcDir" name="srcDir" value="${basedir}/src"></property>
<property id="webDir" name="webDir" value="${basedir}/DefaultWebApp"></property>
<property id="libDir" name="libDir" value="${basedir}/lib"></property>
<property id="buildDir" name="buildDir" value="${basedir}/build"></property>
<property id="classesDir" name="classesDir" value="${buildDir}/classes"></property>
<property id="tempClassesDir" name="tempClassesDir" value="${buildDir}/tempclasses"></property>
<property id="ejbDir" name="ejbDir" value="${buildDir}/ejb"></property>
<property id="javaDir" name="javaDir" value="${srcDir}/java"></property>
<property id="resourceDir" name="resourceDir" value="${srcDir}/resource"></property>
<property id="xmlDir" name="xmlDir" value="${resourceDir}/xml"></property>
<property id="propertiesDir" name="propertiesDir" value="${resourceDir}/properties"></property>
<property id="hcrmEJB" name="hcrmEJB" value="hcrmEJB.jar"></property>
<property id="hospitalEJB" name="hospitalEJB" value="hospitalEJB.jar"></property>
<property id="destDir" name="destDir" value="${basedir}/dest"></property>
<property id="svnUrl" name="svnUrl" value="svn://192.168.1.2/hcrm/codes/syhcrm"></property>
<property id="svnUser" name="svnUser" value="lgq"></property>
<property id="svnPassword" name="svnPassword" value="111111"></property>
<tstamp prefix="today.">
<format property="now" pattern="MM/dd/yyyy HH:mm aa" locale="en,US"/>
</tstamp>
<property name="updateBegainDate" value="05/10/2008 00:00 AM"/>
<property name="updateEndDate" value="${today.now}"/>
<path id="project.classpath" >
<fileset dir="${libDir}">
<include name="*.jar"/>
<include name="*.zip"/>
</fileset>
</path>
<target name="clean">
<delete dir="${buildDir}"/>
<delete dir="${destDir}"/>
<delete dir="${srcDir}"/>
<delete dir="${webDir}"/>
</target>
<target name="init" depends="clean">
<mkdir dir="${buildDir}"/>
<mkdir dir="${classesDir}"/>
<mkdir dir="${tempClassesDir}"/>
<mkdir dir="${destDir}"/>
</target>
<typedef id="svn" name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpath="svnant.jar"/>
<target name="getVersion" depends="init">
<echo message="Getting Version ..."/>
<svn javahl="true" username="${svnUser}" password="${svnPassword}" >
<export srcurl="${svnUrl}/src" force="true" destPath="${srcDir}" revision="header" />
</svn>
<svn javahl="true" username="${svnUser}" password="${svnPassword}" >
<export srcurl="${svnUrl}/DefaultWebApp" force="true" destPath="${webDir}" revision="header"/>
</svn>
<svn javahl="true" username="${svnUser}" password="${svnPassword}" >
<export srcurl="${svnUrl}/lib" force="true" destPath="${libDir}" />
</svn>
</target>
<target name="compile" depends="compileAll">
<echo message="beginDate: ${updateBegainDate}"/>
<echo message="endDate: ${updateEndDate}"/>
<delete dir="${basedir}/updateSrc"/>
<mkdir dir="${basedir}/updateSrc"/>
<copy todir="${basedir}/updateSrc" includeemptydirs="false">
<fileset dir="${javaDir}">
<and>
<date when="after" datetime="${updateBegainDate}"/>
</and>
<and>
<date when="before" datetime="${updateEndDate}"/>
</and>
</fileset>
</copy>
<javac srcdir="${basedir}/updateSrc" listfiles="on" destdir="${tempClassesDir}" failonerror="true" source="1.4" target="1.4" memoryinitialsize="128m" memorymaximumsize="512m">
<include name="**/*.java" />
<classpath refid="project.classpath" />
<classpath path="${classesDir}"/>
</javac>
</target>
<target name="compileAll" depends="getVersion">
<javac srcdir="${javaDir}" destdir="${classesDir}" failonerror="true" source="1.4" target="1.4" memoryinitialsize="128m" memorymaximumsize="512m">
<include name="**/*.java" />
<classpath refid="project.classpath" />
</javac>
</target>
<target name="test" depends="compile">
<echo message="testing ..."/>
</target>
<target name="deploy" depends="test">
<echo message="HCRM Deploying ..."/>
<copy todir="${destDir}/DefaultWebApp" includeemptydirs="false">
<fileset dir="${webDir}"/>
</copy>
<copy todir="${destDir}/DefaultWebApp/WEB-INF/classes" overwrite="true" includeemptydirs="false">
<fileset dir="${classesDir}"/>
</copy>
<copy todir="${destDir}/DefaultWebApp/${hospitalEJB}" includeemptydirs="false">
<fileset dir="${classesDir}">
<include name="hjit/mail/*.class"/>
</fileset>
</copy>
<copy todir="${destDir}/DefaultWebApp/${hcrmEJB}" includeemptydirs="false">
<fileset dir="${classesDir}">
<include name="hcrm/report/ejb/*.class"/>
</fileset>
</copy>
<copy todir="${destDir}/hjset">
<fileset dir="${xmlDir}/hjset"/>
</copy>
</target>
<target name="updatemaker" depends="deploy">
<tstamp prefix="update.">
<format property="dateSign" pattern="yyyy-MM-dd"/>
</tstamp>
<echo message="start date:${updateBegainDate}"/>
<echo message="end date:${updateEndDate}"/>
<delete dir="upate${update.dateSign}"/>
<mkdir dir="upate${update.dateSign}"/>
<copy todir="upate${update.dateSign}/DefaultWebApp" includeemptydirs="false">
<fileset dir="${webDir}">
<and>
<date when="after" datetime="${updateBegainDate}"/>
</and>
<and>
<date when="before" datetime="${updateEndDate}"/>
</and>
</fileset>
</copy>
<copy todir="upate${update.dateSign}/DefaultWebApp/WEB-INF/classes" overwrite="true" includeemptydirs="false">
<fileset dir="${tempClassesDir}"/>
</copy>
<delete dir="upate${update.dateSign}/DefaultWebApp/${hospitalEJB}"/>
<mkdir dir="upate${update.dateSign}/DefaultWebApp/${hospitalEJB}"/>
<copy todir="upate${update.dateSign}/DefaultWebApp/${hospitalEJB}" overwrite="true" includeemptydirs="false">
<fileset dir="${tempClassesDir}">
<include name="hjit/mail/*.class"/>
</fileset>
</copy>
<delete dir="upate${update.dateSign}/DefaultWebApp/${hcrmEJB}"/>
<mkdir dir="upate${update.dateSign}/DefaultWebApp/${hcrmEJB}"/>
<copy todir="upate${update.dateSign}/DefaultWebApp/${hcrmEJB}" includeemptydirs="false">
<fileset dir="${tempClassesDir}">
<include name="hcrm/report/ejb/*.class"/>
</fileset>
</copy>
<copy todir="upate${update.dateSign}/hjset" includeemptydirs="false">
<fileset dir="${xmlDir}/hjset" >
<and>
<date when="after" datetime="${updateBegainDate}"/>
</and>
<and>
<date when="before" datetime="${updateEndDate}"/>
</and>
</fileset>
</copy>
</target>
</project>
本文介绍了一个使用Ant构建工具结合SVN版本控制系统实现自动化的软件构建流程案例。该流程覆盖了从源代码获取到部署的各个环节,并针对特定日期范围内的更新进行了编译与打包。
633

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



