ant example 某项目的ant

本文介绍了一个使用Ant构建工具结合SVN版本控制系统实现自动化的软件构建流程案例。该流程覆盖了从源代码获取到部署的各个环节,并针对特定日期范围内的更新进行了编译与打包。
<!--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>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值