zoukankan      html  css  js  c++  java
  • ubuntu+tomcat,多环境、自动化部署脚本,git+maven+tomcat+ubuntu

     1、切换到/opt/code目录,没有利用mkdir code创建code目录,新建deploy.sh 脚本文件,内容如下
    projectName="";
    #默认tomcat目录名称,可根据自己需求改成自己的tomcat名称,
    tomcatName="tomcat7_8080";
    
    #通过直接杀进程停止tomcat,防止热部署导致服务器内存不足,为了让客户端访问不中断,可以对自己的tomcat做负载
    echo "停止$tomcatName"
    ps -ef|grep $tomcatName  |grep -v grep|cut -c 9-15|xargs kill -9;
    echo "停止成功";
    
    #切换到代码目录
    cd /opt/code/your_project-git;
    echo "cd /opt/code/your_project-git";
    
    #打印当前git代码分支
    echo "当前分支:"
    git symbolic-ref --short -q HEAD;
    echo "拉取最新代码";
    
    #更新代码
    git pull;
    echo "拉取完成";
    echo "********************************************************************************";
    echo "环境变量为:$1";
    
    #多环境情况下,部署环境可通过变量传递,例如测试1环境、测试2环境 
    echo "maven编译开始";
    mvn clean install -P$1;
    echo "maven编译完成";
    
    #循环部署项目,不同的项目如果有不同的tomcatName,直接在对应的if中重新指定tomcatName
    for arg in "$@"
    do
        projectName="";
        contextName=$arg;
        if [ "$arg" = "app" ];
        then
            projectName="app";
    
        elif [ "$arg"  = "merchant" ];
        then
            projectName="merchant";
    
        elif [ "$arg"  = "mgmt" ];
        then
            projectName="mgmt";
            tomcatName="tomcat7_8080";
    
        elif [ "$arg"  = "job" ];
        then
            projectName="job";
        fi
    
        if [ "$projectName" != "" ];
        then
         #删除tomcat中对应的项目
            echo "删除 /usr/local/tomcat/$tomcatName/webapps/$contextName*";
            rm -rf /usr/local/tomcat/$tomcatName/webapps/$contextName*;
            echo "删除完成";
            echo "********************************************************************************";
         #复制通过maven打包完成的war到tomcat目录,如果tomcat使用ROOT目录,则直接把$contextName=ROOT
            echo "复制mb-$projectName-web/target/$projectName.war to /usr/local/tomcat/$tomcatName/webapps/$contextName.war";
            cp mb-$projectName-web/target/$projectName.war /usr/local/tomcat/$tomcatName/webapps/$contextName.war;
            echo "复制成功";
            echo "********************************************************************************";
    
        fi
    done
    
    #启动tomcat,如果每个项目对应不同的tomcat,则把启动命令放在对应的循环里面的复制项目命令后面
    echo "启动$tomcatName";
    sh /usr/local/tomcat/$tomcatName/bin/startup.sh;
    echo "启动成功";

     

    2、自定义脚本的快捷方式(自定义系统命令)

    cd ~
    ll
    vim .bashrc
    #在第一行回车,输入 alias deploy_sh="sh /opt/code/deploy.sh";
    #保存并退出
    
    #让自定义命令立即生效
    source .bashrc
    

      

      

    3、执行脚本

    #在服务器任何目录,可以使用此命令自动更新打包和部署
    #deploy_sh:脚本别名快捷自定义命令
    #test1:maven项目环境别名
    #app、mgmt:项目名称,
    deploy_sh test1 app mgmt
    

      

  • 相关阅读:
    c# 判断一个ip通不通 能不能ping通
    C#二进制与字符串互转换,十六进制转换为字符串、float、int
    将datagridview数据保为xml或txt文件
    笨办法学Python(九)
    笨办法学Python(八)
    笨办法学Python(七)
    Linux安装 NTFS 支持
    Linux安装中文字体包
    Oracle VM VirtualBox 共享文件夹设置
    Verilog频率计设计
  • 原文地址:https://www.cnblogs.com/binz/p/7610798.html
Copyright © 2011-2022 走看看