jenkins构建java脚本

#!/bin/bash
echo "First argument is: $1"
echo "Second argument is: $2"

#开始时间 时间戳
startTime=`date +'%Y-%m-%d %H:%M:%S'`

#接口项目站点路径(目录按照各自配置)
APP_PATH=/home/app/$1
#APP_PATH=/Library/WebServer/Documents/java/crm-admin/target

#jar包文件名称
APP_NAME=$APP_PATH/$1.jar
echo "appName: $APP_NAME"

#日志文件名称
LOG_FILE=$APP_PATH/$1.log
echo "LOG_FILE: $LOG_FILE"

#启动环境   # 如果需要配置数据和redis,请在 application-prod.yml中修改, 用jar命令修改即可
APP_YML=--spring.profiles.active=$2
echo "APP_YML: $APP_YML"

#APP_CONFIG=--spring.config.location=$APP_PATH/
#echo "APP_CONFIG: $APP_CONFIG"

#数据库配置

rm -rf $LOG_FILE

echo "开始停止 crm-admin 项目进程"
#查询进程,并杀掉当前jar/java程序

pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
if [ $pid ];then
  echo "pid: $pid"
  kill -9 $pid
  echo "crm-admin 项目进程进程终止成功"
fi

sleep 2

#判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志

if test -e $APP_NAME;then
  echo '文件存在,开始启动此程序...'

# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件  --spring.profiles.active=prod 启动 prod环境


  nohup java -jar $APP_NAME $APP_YML > $LOG_FILE 2>&1 &
  echo "正在发布中,请稍后......"
  sleep 10s

  #通过检测日志来判断
  while [ -f $LOG_FILE ]
  do
      success=`grep "Tomcat started" $LOG_FILE`
      if [[ "$success" != "" ]]
      then
#          echo "crm-admin start ........."
          break
      else
#          echo "crm-admin Running ......."
          sleep 1s
      fi

#      echo "开始检测启动失败标记"
      fail=`grep "Fail" $LOG_FILE`
      if [[ "$fail" != "" ]]
      then
          echo "项目启动失败"
          tail -f $LOG_FILE
          break
      else
#          echo "crm-admin Running ......."
          sleep 1s
      fi

  done
  echo "crm-admin Started Success"

endTime=`date +'%Y-%m-%d %H:%M:%S'`
startSecond=$(date --date="$startTime" +%s);
endSecond=$(date --date="$endTime" +%s);

total=$((endSecond-startSecond))
# shellcheck disable=SC2027
echo "本次运行时间: "$total"s"
# shellcheck disable=SC2086
echo "当前时间:"$endTime


else
  echo '$APP_NAME 文件不存在,请检查。'
fi

#在 $APP_NAME 同级目录下运行  ./start.sh 命令即可启动项目。

start.sh(启动脚本)

crm-admin(你的项目名)

Jenkins

cd /home/app(你的脚本位置)
sh start.sh crm-admin dev

(dev是环境比如你的spring下面resources下面有application.yml,application-dev.yml,application-prod.yml)

我是java程序员,这个脚本拷贝过来,我感觉这个缺少了一些功能,后面找到了,我在完善一下,jar包备份,log备份,可以方便看日志和回滚等,这个脚本测试环境跑跑还行

这个stop.sh 和Jenkins无关,启动脚本里面有


#接口项目站点路径(目录按照各自配置)
APP_PATH=/www/wwwroot/crm-admin/

#jar包文件名称
APP_NAME=$APP_PATH/crm-admin.jar

echo "开始停止 crm-admin 项目进程"
#查询进程,并杀掉当前jar/java程序

pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`

echo "pid: $pid "

if [ $pid ];then
  echo "pid: $pid"
  kill -9 $pid
  echo "crm-admin 项目进程进程终止成功"
else
  echo "未找到对应服务"
fi

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值