• ant+svn+tomcat实现项目自动部署


    因工作需要,研究并实现了 ant+svn+tomcat实现项目自动部署,其中参考了下面文章:http://www.cnblogs.com/taoweiji/p/3700915.html

    jar包需要eclipse的jar和svn的部分jar,已整理好,直接放入ant中lib下即可。

    除ant外其他所需jar包 下载地址:http://files.cnblogs.com/files/haha12/%E9%99%A4ant%E5%A4%96%E5%85%B6%E4%BB%96%E6%89%80%E9%9C%80jar%E5%8C%85.rar

    完整的build.xml如下,直接执行ant命令即可实现 自动登录svn、下载代码、编译、打war包、停止tomcat服务、拷贝到对应目录、启动tomcat服务、结束、

    <?xml version="1.0" encoding="UTF-8"?>
    <project name="testweb" default="deploy" basedir=".">  
        <property name="webapp.name"    value="testweb"/>  
        <property name="catalina.home" value="D:testweb	omcat_test"/>  
        <property name="dist.dir" value="${basedir}"/>  
        <property name="ant.home" value="D:testwebapache-ant-1.9.5" />  
        <property name="webRoot.dir"   value="${basedir}/${webapp.name}/WebContent"/>  
        <property name="src.dir1"      value="${basedir}/${webapp.name}/src"/>  
        <property name="src.dir2"      value="${basedir}/${webapp.name}/syssrc"/>  
        <property name="lib.dir"    value="${webRoot.dir}/WEB-INF/lib"/>  
        <property name="class.dir"    value="${webRoot.dir}/WEB-INF/classes"/>  
        <property name="svn.UserName" value="user" />  
        <property name="svn.UserPassword" value="pass" />  
        <property name="svn.URL" value="https://192.168.0.1/svn/test" />  
        <property name="svn.Dist" value="${basedir}/${webapp.name}" /> 
        <!-- 目前使用执行bat命令发布  -->
         
        <!-- 由于代码有泛型,必须使用 jdt编译,引入4个eclipse的jar即可。 -->
        <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
        
        <!-- SVN ANT -->  
        <path id="ant.svn.classpath">  
            <fileset dir="${ant.home}/lib">  
                <include name="*.jar" />  
            </fileset>  
        </path>  
        <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask">  
                <classpath refid="ant.svn.classpath" />  
        </taskdef> 
        <target name="checkout" description="checkout full web project">  
            <delete dir="${basedir}/${webapp.name}"/> 
            <svn username="${svn.UserName}" password="${svn.UserPassword}">  
                <checkout url="${svn.URL}" revision="HEAD" destPath="${svn.Dist}" />  
            </svn>  
        </target>  
          
        <path id="compile.classpath">  
            <fileset dir="${catalina.home}/lib">  
                <include name="*.jar"/>  
            </fileset>  
            <fileset dir="${lib.dir}">  
                <include name="*.jar"/>  
            </fileset>  
        </path>  
      
        <!-- 初始化,建立目录,将多个src目录复制到同一src目录 depends="checkout" -->  
        <target name="copysrc" description="将多个src目录复制到同一src目录" depends="checkout">  
            <copy todir="${src.dir1}">
                <fileset dir="${src.dir2}">
                </fileset>
            </copy>
        </target>
          
        <target name="clean" depends="copysrc">  
            <delete dir="${class.dir}"/>  
        </target>  
      
        <target name="compile" depends="clean">  
            <mkdir dir="${class.dir}"/>  
            <javac srcdir="${src.dir1}" destdir="${class.dir}" encoding="utf-8" source="1.6" target="1.6" nowarn="true" includeantruntime ="on">  
                <compilerarg value="-Xlint:unchecked "/> <!-- 就是这句话!! -->
                <compilerarg value="-Xlint:deprecation  "/> <!-- 就是这句话!! -->
                <classpath refid="compile.classpath"/>  
            </javac>  
        </target>  
         <!-- 拷贝资源文件 -->
        <target name="copyres" depends="compile">  
            <copy todir="${class.dir}">
                <fileset dir="${src.dir1}">
                    <exclude name="**/*.java"/>
                </fileset>
            </copy> 
        </target> 
         <!-- 生成war包 -->  
        <target name="createwar" depends="copyres">  
            <delete file="${dist.dir}/${webapp.name}.war"/>  
            <war destfile="${dist.dir}/${webapp.name}.war">  
                <fileset dir="${webRoot.dir}"/>  
            </war>  
        </target>  
        
        
        <target name="shutdowntomcat" description="Install web application" >
              <echo message="正在关闭服务器。。。" />  
              <exec executable="${catalina.home}/bin/shutdown.bat" failonerror="false"></exec>  
              <echo message="服务器成功关闭" />  
              <sleep seconds="10"/>  
              <!-- 删除之前解压的war包-->  
              <delete dir="${catalina.home}/webapps/${webapp.name}"></delete>  
              <delete dir="${catalina.home}/webapps/${webapp.name}.war"></delete> 
        </target>
             
        <target name="startuptomcat" description="Remove web application" >
              <sleep seconds="10"/>  
              <echo message="正在启动服务器。。。" />  
              <exec executable="${catalina.home}/bin/startup.bat" failonerror="false"></exec>  
              <echo message="服务器启动成功" /> 
        </target>
        
        <!--部署到tomcat下面,如果系统有多个tomcat,不能配置系统变量:CATALINA_HOME,可以直接修改 bat文件 -->  
        <target name="deploy" depends="createwar">  
            <ant target="shutdowntomcat"/>  
            <!-- 拷贝war包-->            
            <copy file="${dist.dir}/${webapp.name}.war" todir="${catalina.home}/webapps" />  
            <ant target="startuptomcat"/>  
        </target> 
                
         
      
    </project>  
  • 相关阅读:
    C#各版本新特性
    ubantu操作积累
    C# System.Net.Http.HttpClient使用说明
    IIS下VUE跳转
    融合主流的技术 分布式中间件+微服务+微架构架构
    论减少代码中return语句的骚操作
    shell脚本--多个代码库批量pull最新master代码
    SpringBoot单元测试
    Qt音视频开发36-USB摄像头解码qcamera方案
    Qt音视频开发35-Onvif图片参数
  • 原文地址:https://www.cnblogs.com/haha12/p/4708758.html
Copyright © 2020-2023  润新知