每当开发者部署项目到服务器时,总是先打包,再上传,服务器上杀进程,备份旧包,启动新包。非常繁琐而且都不能省略的几步操作。今天就要给大家安利一款插件,可以一键代替以上所有步骤。可为开发人员节省大部分的时间。他就是Alibaba Cloud Toolkit
1:安装插件
确保 IntelliJ 、PyCharm、PhpStorm等在 2018.1 或更高版本
第 1 步:打开 Intellij 的 Settings ( Windows下 ) 或 Preferences( Mac下 )窗口
第 2 步:进入 Plugins 选项,搜索“Alibaba Cloud Toolkit”,并安装即可,如下图
第三步:插件安装成功后,重启 Intellij,您可以在工具栏看到 Alibaba Cloud Toolkit 的图标。或者Tools 中,可以看到Alibaba Cloud选项。
2:添加服务
如图所示,Tools - Alibaba Cloud - Alibaba Cloud View -Host
中打开机器视图界面,如下图:
点击 Add Host 后,输入你要添加的服务器,测试连接通过后,点击Add
3:自动化部署
如图所示,Tools - Alibaba Cloud – Deploy to Host
中打开机器视图界面,如下图:
步骤一:File: 如果是maven项目,选择Maven Build,如果想直接上传jar包或者war包,选择Upload File
步骤二:Target Host:选择上传的服务器(2中添加的服务)
步骤三:Target Directory: 部署包上传的路径(此处建议上至传备份路径,因为直接上传,会将原文件覆盖,无法备份。上传新包至备份路径,然后将原有的包备份到备份路径中,将新上传的包再放回部署路径。后面脚本会执行该操作)
步骤四:After deploy:部署之后,服务器操作的命令。我在/opt/pangu/pangu_backup/ 下面放置了一个启动项目的脚本:restart_with_backup.sh(脚本内容文末)。sh restart_with_backup.sh,代表包上传完之后,执行这个脚本
步骤五:Before launch:在执行前的操作。Maven项目需要clean,并package项目,才能生成jar包。并且,如果是Maven父子依赖项目的话,需要父项目clean install后,才能保证子项目所有的依赖是最新的。上图即父子依赖项目。操作图如下:点击框内左下角的+ ,选择run maven goal
选中父项目,填写clean install,保存后,继续上一步操作,选中要部署的项目clean package。如果不是父子级maven项目,选中项目后直接填写clean package 就OK
参考:
插件安装
https://developer.aliyun.com/article/674021
阿里云官方部署文档
https://developer.aliyun.com/article/696132
restart_with_backup.sh脚本内容
#系统时间DATE=$(date +%Y_%m_%d-%H%M%S)#端口port=5020#部署路径deploy_path=/opt/pangu#备份路径bak_paht=/opt/pangu/pangu_backup#包名app_name=panguAdmin-main#环境active=dev#1: 根据端口号,杀掉进程if [ ! -z "$(lsof -i :${port} -t)" ];then kill -9 $(lsof -i :${port} -t)fi#2:备份上次的包cp ${deploy_path}/${app_name}.jar ${bak_paht}/${app_name}.jar${DATE}#3:删除部署路径中上次的包rm -rf ${deploy_path}/${app_name}.jar#4:将新包放置到部署路径(当前路径在备份路径)mv ${bak_paht}/${app_name}.jar ${deploy_path}/${app_name}.jar#5:启动新包java -Xms256m -Xmx512m -jar ${deploy_path}/${app_name}.jar --spring.profiles.active=${active} --server.port=${port} >> ${deploy_path}/${app_name}.out &