当前位置: 首页 > news >正文

在linux下配置javaWeb项目.sh部署脚本

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

#!/bin/sh

#使用监视模式,如果不设置该命令。可能导致通过shell脚本启动以后,shell断开连接,启用的应用程序也会随之停止。

set -m   

# 定义变量接收值, 如: ./test.sh gx test true true

provice="$1"      
profile="$2"
if [ "${profile}" = "" ];then
  profile="test"
fi

skip_core="$3"
skip_common="$4"

path=`pwd`        

#`pwd`代表当前目录。注意是`符号,而不是'单引号
PROJECT_NAME='lottery'
SUB_PROJECT_NAME='lottery-service'

suffix=""
if [ "${provice}" != "gx" ];then
  suffix="-${provice}"
fi
TC_PATH="/opt/tc-server/joywifi-server-${SUB_PROJECT_NAME}${suffix}"

#从svn上更新代码

update_code(){
  if [ -e $PROJECT_NAME ];then
    cd $PROJECT_NAME && svn update --username "xuebin.yang" --password "888888"
  else
    svn checkout "http://10.13.0.55:8080/svn/GL_SCLT/trunk/${PROJECT_NAME}" --username "xuebin.yang" --password "888888"
  fi
}

#进行打包处理

package(){
  cd ${path}/${PROJECT_NAME}
  if [ "$skip_core" != "true" ];then
    echo 'install lottery-core'
    mvn clean install -f lottery-core/pom.xml -P ${provice} -Dmaven.test.skip=true
  fi

  if [ "$skip_common" != "true" ];then
    echo 'install lottery-common'
    mvn clean install -f lottery-common/pom.xml -P ${provice} -Dmaven.test.skip=true
  fi
  echo "package ${SUB_PROJECT_NAME}"
 
  mvn clean package -P ${profile}-${provice} -Dmaven.test.skip=true -f ${SUB_PROJECT_NAME}/pom.xml
  if [ $? -ne 0 ];then
    echo '打包不成功,请检查svn代码'
    exit 0
  fi
}

#mvn命令部署项目

deploy(){
  ${TC_PATH}/bin/tcruntime-ctl.sh stop
  rm -rf ${TC_PATH}/webapps/ROOT/
  rm -rf ${TC_PATH}/webapps/ROOT.war.BAK
  mv ${TC_PATH}/webapps/ROOT.war ${TC_PATH}/webapps/ROOT.war.BAK
  cp ${path}/${PROJECT_NAME}/${SUB_PROJECT_NAME}/target/ROOT-${profile}.war ${TC_PATH}/webapps/ROOT.war
  ${TC_PATH}/bin/tcruntime-ctl.sh start &
  tail -f ${TC_PATH}/logs/catalina.out
}

if [ $path != '/home/sh-command/deploy' ];then
  echo '请到/home/sh-command/deploy目录下运行'
  exit 0
fi

if [ $# -lt 1 ];then
  echo "请输入省份"
  exit 0
fi

update_code

package

read -p '是否部署?Y/N' is_deploy
echo "是否部署:$is_deploy"

if [ $is_deploy = "y" ] || [ $is_deploy = "yes" ];then
   deploy
elif [ $is_deploy = "n" ] || [ $is_deploy = "no" ];then
   echo -e "\033[31m 取消部署 \033[0m"
else
    while [ $is_deploy != "y" ] || [ $is_deploy != "yes" ] || [ $is_deploy != "n" ] || [ $is_deploy != "no" ];do
         read -p '是否部署?Y/N' is_deploy
         echo "是否部署:$is_deploy"

         if [ $is_deploy = "y" ] || [ $is_deploy = "yes" ];then
            deploy
            break
         elif [ $is_deploy = "n" ] || [ $is_deploy = "no" ];then
            echo -e "\033[31m 取消部署 \033[0m"
            break
         fi

   done

fi

转载于:https://my.oschina.net/u/1583087/blog/596925

相关文章:

  • 初始化httpclient的几种方式
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • PDU的编码--SMS编码
  • jQuery网页版五子棋小游戏源码下载
  • Java Script 第五节课 Java Script的强制转换。
  • pywinauto 自动化框架调研
  • 微信公众账号 token 验证失败 解决办法
  • 简单的并发架构设计
  • 分布式消息系统Jafka入门指南之二
  • (一一四)第九章编程练习
  • 在windows下安装pandas
  • Debugview使用方法
  • 生成不重复的随机数(待完善)
  • 登录流程-1
  • C#通过指针读取文件
  • php的引用
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • React 快速上手 - 07 前端路由 react-router
  • React-redux的原理以及使用
  • scala基础语法(二)
  • Spring Cloud中负载均衡器概览
  • SQLServer之创建数据库快照
  • vue.js框架原理浅析
  • 大整数乘法-表格法
  • 翻译:Hystrix - How To Use
  • 开源地图数据可视化库——mapnik
  • 你真的知道 == 和 equals 的区别吗?
  • 嵌入式文件系统
  • 如何在 Tornado 中实现 Middleware
  • 小程序测试方案初探
  • 学习笔记TF060:图像语音结合,看图说话
  • 自定义函数
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • #define 用法
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (4)事件处理——(7)简单事件(Simple events)
  • (floyd+补集) poj 3275
  • (二)换源+apt-get基础配置+搜狗拼音
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (五)网络优化与超参数选择--九五小庞
  • (一一四)第九章编程练习
  • (转)Sql Server 保留几位小数的两种做法
  • (转载)OpenStack Hacker养成指南
  • (转载)利用webkit抓取动态网页和链接
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Standard 的管理策略
  • .NET 使用 XPath 来读写 XML 文件
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • /etc/fstab和/etc/mtab的区别