利用ant 自动更新svn+打包+上传

一:工具
    1、apache-ant-1.8.2-bin.zip
   2、svnant-1.2.1.zip(下载的时候要注意与jdk的版本对应,我就在这个地方郁闷了半天)
   3、commons-net-2.2-bin.zip
   4、ServUSetup.zip(ftp服务器)
二:步骤
   1、解压apache-ant-1.8.2-bin.zip,配置相应的环境变量ANT_HOME,path
   2、把svnant-1.2.1\lib下的jar以及commons-net-2.2下的jar放到 ANT_HOME\lib 下
   3、安装ftp服务器,执行ServUSetup.exe(设置好用户的id和密码,build文件用到)
三:build 文件代码


      <?xml version="1.0" encoding="UTF-8"?> 
    <project name="ant-smu" default="sendSmuToFTP" basedir="../"> 
        <!-- 这里的basedir是工程的目录为根目录 
            一般basedir="."表示的是build.xml文件所在的相对目录为根目录即src  
        --> 
        <property name="src" value="src"/> 
<!-- 编译目录--> 
        <property name="dest" value="/${basedir}/WebRoot/WEB-INF/classes"/>
    <property name="svnurl" value="svn://192.168.0.12/nvs/java/smu"/>
    <property name="svnusername" value="user1"/>
    <property name="svnuserpw" value="user1_p"/>
        <property name="ftpserverip" value="192.168.0.155"/>
        <property name="ftpuserid" value="admin"/>
        <property name="ftpuserpw" value="123"/>
   
        <!-- 定义发布目录--> 
        <property name="webApp" value="D:\nvr2000\nvr2000\tomcat\webapps\"/>

        <taskdef resource="svntask.properties">
<!-- 我这里是把svnant-1.2.1\lib下的三个jar放到工程lib下了,无论放到哪里,定义好path就可以--> 
         <classpath>
      <pathelement location="${basedir}/WebRoot/WEB-INF/lib/svnjavahl.jar" />
      <pathelement location="${basedir}/WebRoot/WEB-INF/lib/svnant.jar" />
      <pathelement location="${basedir}/WebRoot/WEB-INF/lib/svnClientAdapter.jar" />
         </classpath>
        </taskdef> 
    <target name="clean">
       <delete dir="${webApp}smu.war"/>
<echo message="delete ${webApp}smu.war..." /> 
    </target>
    <target name="checkoutThis" depends="clean">
      <svn username="${svnusername}" password="${svnuserpw}">
       <checkout url="${svnurl}" revision="HEAD" destPath="${basedir}"/>
      </svn>
    </target>
       <echo message="init ..." /> 
       <target name="init" depends="checkoutThis">     
           <mkdir dir="${dest}"/>  
          
       </target>  
       <!-- 编译class文件--> 
       <target name="compile" depends="init"> 
    <!--<javac srcdir="${src}" destdir="/${basedir}/WebRoot/WEB-INF/classes"></javac>  -->
       </target>
<!-- 打包-->  
    <target name="war" depends="compile">
      <war destfile="${webApp}smu.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
       <fileset dir="${basedir}/WebRoot">
            <include name="**/*.*"/>
        </fileset>
      </war>
    </target>
<!-- 上传,ftp上传有两种方式主动PORT,被动PASV,网上说内网用被动模式需要一些对ftp服务器的设置,按网上说的做应该可以,我没有做--> 

        <target name="sendSmuToFTP" depends="war">
        <ftp server="${ftpserverip}" port="21" userid="${ftpuserid}" password="${ftpuserpw}"  depends="no" verbose="yes">
         <fileset dir="${webApp}">
                <include name="*.war"/>
            </fileset>
        </ftp>
    </target>     
   </project>

      

你可能感兴趣的:(apache,.net,xml,SVN,ant)