zoukankan      html  css  js  c++  java
  • svn-maven-tomcat自动发布脚本

    #!/bin/sh
    
    #svn-maven-tomcat自动发布脚本
    #变量设置
    svnpath=svn://10.60.10.120/研发部/xx-maven
    svnusername=xxx
    svnpassword=xxxn888
    workplace=xxepp
    projname=xxepp
    tomcat_server=10.60.10.161
    webappsPath=/usr/local/tomcat/webapps
    
    #环境变量设置
    export JAVA_HOME=/usr/local/jdk18
    export CLASSPATH=${JAVA_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    export M2_HOME=/usr/local/apache-maven-3.3.9
    export M2=$M2_HOME/bin
    export PATH=$M2:$PATH
    
    rm -fr ${workplace}
    
    #从svn上面export代码
    svn export ${svnpath} ./${workplace} --username ${svnusername} --password ${svnpassword}
    
    #maven编译
    compileSuccessFlag=0
    
    cd ${workplace}
    /usr/local/apache-maven-3.3.9/bin/mvn clean package -Dmaven.test.skip=true
    
    if [ $? -eq 0 ]; then
    compileSuccessFlag=1
    echo "maven编译成功"
    else
    echo "maven编译失败"
    fi
    
    cd ../
    
    #如果编译失败,直接退出
    
    if [ ${compileSuccessFlag} -eq 0 ]; then
    echo "编译失败,程序退出"
    exit 1;
    fi
    
    #编译成功,war存在,则复制到tomcat目录,重启tomcat
    warPath=./${workplace}/target/${projname}.war
    if [ -f "${warPath}" ]; then
    
    #删除老的war包,将新的包拷贝过去
    #ssh ${tomcat_server} rm -rf ${webappsPath}/${projname}.war
    ssh ${tomcat_server} find ${webappsPath}/old/ -mtime +7|xargs rm -rf
    ssh ${tomcat_server} mv ${webappsPath}/${projname}.war ${webappsPath}/old/${projname}$(date +%s).war
    ssh ${tomcat_server} rm -rf ${webappsPath}/${projname}
    scp  ./${workplace}/target/${projname}.war  ${tomcat_server}:${webappsPath}/
    
    #重启tomcat
    echo "重启tomcat..."
    ssh ${tomcat_server} 'source /root/.bash_profile;/usr/local/tomcat/bin/shutdown.sh'
    sleep 3
    if [ $? -eq 0 ]; then
    ssh ${tomcat_server} 'source /root/.bash_profile;/usr/local/tomcat/bin/startup.sh'
    sleep 6
    echo "重启成功"
    else
    echo "tomcat启动失败"
    fi
    
    else
    echo "war包不存在"
    fi

    备注:因maven服务器和tomcat服务器在不同的主机上,需要做公钥认证

  • 相关阅读:
    【底层原理】四位计算机的原理及其实现
    ctags的如何生成tags文件
    nginx-1.12.0版本(编译安装)-自定义安装路径
    使用LVS实现负载均衡原理及安装配置详解
    【系统架构】亿级Web系统搭建(1):Web负载均衡
    9个Linux系统常用监控命令
    NetStat命令详解
    SQLSERVER CXPACKET 等待
    什么是PAGELATCH和PAGEIOLATCH
    CentOS环境变量配置并生效
  • 原文地址:https://www.cnblogs.com/vijayfly/p/5753851.html
Copyright © 2011-2022 走看看