插件介绍

提供自动部署项目到服务器的能力,并且可以在部署前后执行自定义命令或脚本。

插件使用

前提

在插件市场安装好插件。

配置服务器

  1. 选择 Alibaba Cloud View 面板:在底部(或侧边栏,或顶部 Tools 导航栏);
  2. 点击 Add Host:添加服务

image.png

  1. 填写服务器 ip:可以填多个,换行分隔,但端口得一致;
  2. 指定登录方式:使用 ssh 需要将公钥写入到服务器得 ssh 授权文件中,然后在插件中配置本地私钥路径;

image.png

配置启动项

  1. 选择 Deploy to Host:在 Target Host 中指定(上步添加的)服务器,可以多选;

image.png

  1. 选择 Upload File:在(聚合项目)使用过程中,Maven Build 会自动(没找到配置项)上传错误的路径,且上传的是 pom,而 Upload File 可以随意指定路径;
  2. 选择 Browse(也可以直接在输入框中填写):找到打包好的(mvn install 或 target 的)路径;
  3. 填写远程服务器中项目发版的根路径;
  4. 指定部署前执行命令:点击 + 打开拓展菜单;

image.png

  1. 选择执行器:此处选择了 maven;
  2. 输入执行命令:填入目标(goal)命令即可,多个命令空格(逗号没试)分隔;

image.pngimage.png

后置命令

在部署(项目上传到服务器)后(在部署的路径中)执行。
推荐在服务器上预置脚本来提供更强、更灵活的功能。

clean.sh

因为可能会有不同版本号的项目,且没有在打包插件中约定固定的名称,因此服务器上会积累多个版本项目:

  1. 一般的启动脚本(为了忽视版本号),会使用 * 来匹配指定前缀的 jar 以启动项目,如此启动脚本会匹配多个版本的项目,需要清理旧的项目;
  2. 或者需要将之前的 jar 包做成备份;

所以需要使用脚本找出旧的项目(此时 jar 已经上传)。

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
file='项目名-*'
# 计算该目录下相同前缀的文件个数
num=`ls -tr | grep ${file} | wc -l`
echo 共有 $num 个文件
if [ $num -gt 1 ];then
# 计算需要删除的文件个数(保留一个就行)
num=`expr $num - 1`
echo 找到历史文件: `ls -tr | grep ${file} | head -$num | xargs`
ls -tr | grep file | head -$num | xargs -i -n1 rm -rf {} && echo 删除成功!
else
echo 无历史文件,忽略本次操作
fi

auto-deploy.sh

脚本的功能上解耦好一点,因此添加一个统一的入口脚本,用来统筹其他的操作,下面的执行方式需要 .sh 的读取权限,通常 chmod 777 ./xxx.sh 给上足够的权限即可。

1
2
#!/bin/bash
./clean.sh && ./startup.sh

其他

  1. 也可以在 VS Code 安装,(我)用来发前端;
  2. 更多操作,查看官方介绍

评论