功能
能够在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编码格式才可。