功能

能够在idea中迅速连接到服务器(免密)
能够在idea中sftp文件,上传文件到服务器
能够在idea中一键执行maven命令,打包===>部署到服务器===>执行自己的运行脚本。

安装

在这里插入图片描述

配置host

在这里插入图片描述
在这里插入图片描述

自动化部署后端

通过maven构建的方式自动化部署后端

在这里插入图片描述
idea中的terminal实时查看日志,如果想设置按日滚动的日志文件,可以设置成例如:eureka-$(date +%Y-%m-%d).log
在这里插入图片描述

通过maven的方式部署多模块项目注意事项

在执行前需要添加两条maven命令

在这里插入图片描述

首先在最外层的模块添加如下命令

在这里插入图片描述

在生成jar包的模块添加如下命令

在这里插入图片描述

springboot项目(After deploy)部署后的执行脚本,注意脚本中 enviroment 变量

#!/bin/bash
# 加载环境变量
source /etc/profile

#部署的地址,将jar包上传到deploy
deploy_path="/opt/sh/project/"
#日志名称
log_name="test-$(date +%Y-%m-%d).log"
#运行环境,不过不需要这个,则将下文中的--spring.profiles.active=$enviroment删除
enviroment="prod"

back(){
  if [ ! -d $deploy_path ]; then
    mkdir $deploy_path
    echo "文件夹创建成功!"
  elif [ ! -f $log_name ]; then
    touch $log_name
    echo "日志文件创建成功!"
  fi
}

back
#启动方法
start(){
  echo "进入启动函数!"
  # 表示start方法后跟的第一个参数
  APP_NAME="$1";
#判断${APP_NAME}文件是否存在
  if [ ! -f $deploy_path$APP_NAME ];then
      echo "启动文件地址:$deploy_path$APP_NAME"
      echo "没有找到$APP_NAME启动文件!"
      return
  fi

  #进程是否启动,没启动直接启动,启动了就先关闭再重启,awk '{print $2}' 的作用就是打印(print)出第二列的内容,第二列正好是PID
  pid=$(ps -ef | grep -v 'grep' | egrep $APP_NAME| awk '{print $2}')
  # [ -z STRING ] 如果STRING的长度为零则返回为真,即空是真
  #如果不存在返回1,存在返回0
  if [ -z "${pid}" ]; then
    #不存在,直接启动
   $deploy_path$APP_NAME > /dev/null 2>&1 &
    nohup java -jar $deploy_path$APP_NAME --spring.profiles.active=$enviroment > $deploy_path$log_name 2>&1 &
    echo "不存在进程,项目启动成功!"
  else
    echo "项目$1已经启动,进程pid是${pid}!"
    echo "现在开始关闭进程,重启$APP_NAME!"
    for i in $pid
    do
            kill -9 $i
            echo "杀死进程$i成功!"
    done
    nohup java -jar $deploy_path$APP_NAME --spring.profiles.active=$enviroment > $deploy_path$log_name 2>&1 &
    echo "项目启动成功!"
  fi
}
# jar包的名称,对应start函数中的$1
start springboot.jar

sringboot项目(Before deploy)部署前的执行脚本,在Advanced中

#!/bin/bash
#删除之前上传的jar包
rm -rf /opt/project/rent-after/*

通过上传文件的方式自动化部署后端

选择jar包所在位置

在这里插入图片描述

添加执行前的maven命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果是多模块的springboot项目,选择最外层的即可

在这里插入图片描述

vue项目自动化部署配置

通过上传文件的方式自动化部署后端

需要先手动构建,生成dist文件夹

添加执行前的npm命令

在这里插入图片描述
在这里插入图片描述

vue项目(Before deploy)部署前的执行脚本,在Advanced中
#!/bin/bash
#删除之前部署的vue项目
rm -rf /usr/local/nginx/html/vueproject/*
vue项目(After deploy)部署后的执行脚本
#!/bin/bash

cd /usr/local/nginx/html/
//复制上传的文件
cp -r dist/* vueproject
//删除dist文件夹
rm -rf dist

docker restart nginx

配置好之后点击run即可同步

在这里插入图片描述

执行shell脚本遇到的问题

Linux执行.sh文件,提示No such file or directory的问题。

解决办法:用vim打开该sh文件,输入:

[plain]

:set ff

回车,显示fileformat=dos,重新设置下文件格式:

[plain]

:set ff=unix

保存退出:

[plain]

:wq

再执行,OK了。

2、Result乱码的问题或vim policy.sh后中文乱码的问题,都是一个问题引起的,就是在新建policy.sh时,在记事本中要另存为选择UTF8编码格式才可。

Logo

一站式 AI 云服务平台

更多推荐