今天翻朋友圈看到一篇文章介绍阿里巴巴的官方IDE插件----Cloud Toolkit,看了一下,感觉很牛逼,花了两个小时亲测,果然很好用。
官方的介绍为: Cloud Toolkit 是本地 IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,可以将本地应用一键部署到任意服务器,甚至云端(ECS、EDAS、Kubernetes 和 小程序云 等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传和 MySQL 执行器等工具。
以下为测试过程。
开发工具: idea (2018.1.1以上版本)
JDK: 1.8以上版本
部署方式: Maven构建(暂时不支持Gradle)
1、基于Spring Boot快速构建一个Web,项目结构如下:
2、安装Alibaba Cloud Toolkit插件
这一步参考官方文档: https://help.aliyun.com/document_detail/98762.html
3、安装好之后开始配置服务器相关参数
红色框里面的菜单对应的功能如下:
我测试的就是部署到任意服务器,即Deploy to Host,如下,先配置服务器,
点击右上角的Add Host,弹出如下框,填上服务器相关参数,保存即可.
4、配置项目所在服务器的路径以及一些需要执行的脚本.
如下是项目相关文件,demo-0.0.1.jar是jar包,restart.sh是重启服务的脚本,start.sh是启动服务的脚本, shutdown.sh是停止服务的脚本,nohup.out是日志输出文件
如上操作,部署项目到服务器上,会弹出下框,进行相关的配置:
下面配置jar包以及执行脚本的路径需为绝对路径
以上配置的Command为:
sh /opt/test-cloud-toolkit/restart.sh demo-0.0.1.jar
解释为: 项目部署后执行restart.sh脚本,这个脚本的作用是重启服务。后面的demo-0.0.1.jar是一个参数传入脚本文件中。
restart.sh脚本内容如下:
#!/bin/sh
#服务名
if [ ! -n "$1" ] ;then
echo "please input a process name!"
exit
else
process_name=$1
echo "process name is $process_name!"
PID=$(ps -ef | grep $process_name | grep -v "$0" | grep -v "grep" | awk '{print $2}')
if [[ -z $PID ]]; then
nohup java -jar ./$process_name &
if [ $? -eq 0 ];then
echo "start $process_name success"
tail -f nohup.out
exit
else
echo "start $process_name fail"
fi
else
echo "$process_name process id:$PID"
fi
kill $PID
if [ $? -eq 0 ];then
echo "kill $process_name success"
sleep 5
nohup java -jar ./$process_name &
if [ $? -eq 0 ];then
echo "start $process_name success"
else
echo "start $process_name fail"
fi
else
echo "kill $process_name fail"
fi
fi
tail -f nohup.out
以上配置好以后,点击如下按钮即可启动部署
执行结果:
这样即部署成功!浏览器请求一下:
可见部署成功!
我们可以修改一下名称,避免同一项目需要多处部署以免混淆:
修改完后如下:
然后再次部署时只需要点击绿色三角按钮即可!
将sayHello方法的输出修改一下,再次测试:
访问浏览器:
到此结束!
自动部署之前项目使用过jenkins,这次简单测试后,感觉Cloud Toolkit相比jenkins有如下优点:
1、配置简单,不用单独安装jenkins(占磁盘空间)
2、修改代码后不需要上传到git就可以实现本地打包部署,而jenkins必须是代码上传到git仓库后才可以被打包到