时间
2020年12月2日
前提
做java开发的程序员,都绕不开开发、编译、打包、上传,然后启动服务的一系列固定的操作。开发的时候时不时要修改一下代码然后部署到测试服务器上去,虽然事情不多,然后确实让人很繁琐。
解决办法
服务器上,我们可以写一些脚本去自动停止启动tomcat或者SpringBoot项目,并且服务器又可以设置通过设置验证秘钥去登陆或者执行脚本命令,于是我们便可以吧这些命令组合起来去实现我们在idea中的一键发布到服务器中去。
服务器端的工作
-
创建启动命令
-
tomcat
这个启动命令不用处理,自带的/bin/startup.sh
-
springboot
- 创建start.sh文件
- nohup java -jar xxx.jar & 其他具体的启动参数可自行设置
- 给文件添加可执行权限chmod u+x start.sh
-
-
通用停止命令
创建shop.sh,内容如下,tomcat_sit替换成自己的包名,最后删除的命令可根据自己的包,进行修改
pid=`ps -ef | grep tomcat_sit | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then kill -9 $pid fi ; rm -rf manage*
-
创建服务器连接私钥
可参考
https://www.cnblogs.com/powpoia/p/8953106.html
-
创建好连接服务器私钥之后可利用秘钥测试一下登陆,后面需要用到该命令
ssh -i id_rsa.pem root@39.97.103.5
idea工作
-
创建执行命令publish.sh命令
-
安装可执行sh的插件
https://blog.csdn.net/u012443641/article/details/81295999
-
写入自己的脚本命令
-
项目打包 mvn clean package
-
执行停止服务命令 ssh -i C:/key/child_test.pem root@192.168.23.86 'bash /home/tomcat_sit/webapps/stop.sh'
-
执行上传包的命令 scp -i C:/key/child_test.pem E:/project/qzpd_svn/qzpd_api/target/manage.war root@192.168.23.86:/home/tomcat_sit/webapps
-
执行启动命令 ssh -i C:/key/child_test.pem root@192.168.23.86 'cd /home/tomcat_sit/bin && bash startup.sh'
-