idea使用Alibaba Cloud Toolkit部署spring boot项目到Linux服务器
spring boot2 打成jar(war)包并发布到Linux服务器 1:包含发布和取消发布 2:多模块(聚合工程)jar,war包部署)
关于打包方式各种方式都可以,具体方式包括idea自带的maven插件打包,或者命令打包,或者其他工具比如eclipse打包,这里默认你已经打包ok了,这里也是主要演示jar包的发布和取消发布(注意:不是讲jar包放到Linux某个目录下,直接运行java -jar xx.jar能够正常启动就是说明是发布成功的哟,因为外网依然不能正常访问,项目接口还是不能正常被访问,必须以能够访问接口为准).
服务器版本我的是Linux centos7.5,spring boot2.x,比如我打包是配置文件配置的是8081端口,那么需要服务器开放8081端口,注意如果Linux命令操作来开放8081端口号需要权限,如果是云服务器(比如阿里云,华为云)可以直接使用控制面板进行开放,显得简单有效(当然也需要权限啦).
90后的老铁直接使用Xftp或者Xshell比较科学(其他操作工具也行)
========================传统部署===================================
步骤1:上传jar包到某个目录,比如/home/xinzuo/app
步骤2:进入目录
cd /home/xinzuo/app
步骤3:持久启动(就是退出了账号,关闭了连接工具依然可以后台运行)
nohup java -jar lvyou-0.0.1-SNAPSHOT.jar > LinuxLvyouSpringboot.log 2>&1 &
其中LinuxLvyouSpringboot.log是我为这个项目起的日志名称而已,因为项目配置了日志的,可以理解为这个是全局的日志.如果你日志文件写好了日志路径就直接nohup java -jar lvyou-0.0.1-SNAPSHOT.jar即可,不需要指定后面的乱七八糟的参数
如果正常启动,会返回对应进程号,比如 [1] 13717,此时表示发布成功,可以去测试一下项目首页,接口等可以访问不,一般到这步了基本上是可以算正常发布了.
步骤4:关闭已经发布的项目,查看端口(比如你配置的是8081)占用并关闭进程(确认一下)---使用关闭进程的方式关闭项目的运行
netstat -lnp|grep 8081
服务器显示进程详情如下:
tcp6 0 0 :::8081 :::* LISTEN 13717/java
步骤5:关闭进程的方式关闭jar包的运行(kill -9 这个破命令关闭过于简单粗暴,dev管不了那么多,kill了再说,kill错了就挂了)
kill -9 13717
确认关闭成功与否很多方式,简单粗暴的就是直接访问项目接口看能访问不,或者使用Linux命令,根据您佬的喜好自己决定.
完整示例
======================1秒高速吹牛部署====================================
敲黑板-------------------------------------------------------------------------------------------------------
Linux基本命令,这里提一嘴,后面的使用上 针对jar项目,一般是关闭掉jar所在的端口号所在的进程ID,来关闭springboot的jar项目,和war包部署在tomcat直接覆盖就行了不一样,jar包需要先执行关闭,再部署,直接部署会报错端口冲突,比如获取8112所在的端口号并关闭对应线程ID(前提是8112是跑的你的jar包项目,不然都端口都没有跑项目也会报错)
netstat -lnp | grep 8112 | awk '{print $7}' | tr '/' ' ' | awk '{print $1}' | xargs kill -9
关闭后执行重新部署命令脚本
nohup java -jar xxl-job-executor.jar
敲黑完板了----------------------------------------------------------------------------------------------------
经过传统部署,虽然部署OK,但是人生苦短,每次修改完代码后都要重复上面的操作,你哪有时间去勾搭前端小姐姐,UI小妹妹之类的,
那么此时阿里巴巴为了解决这个问题,早就帮你想要好了,百度Alibaba Cloud Toolkit这个插件,当然idea作为java最帅气的,最懂你的编辑器直接在插件库下载就行了,eclipse我不是很清楚,估计也有,毕竟可爱的人都用idea,废话不多说了,你直接查考下面的官方文档得了
https://help.aliyun.com/document_detail/108590.html?spm=a2c4g.11186623.2.18.11f14c07TQAbdg
当然我自己记录还是会写一个自己部署过的作为留念.
1:安装好插件,安装OK后会在底部有个状态栏的(没有的话可以设置现实出来,这不是重点)
2:配置服务器,点击有个添加 Add 的按钮(没有特殊说明的默认就行了)
3:部署应用(点击项目右键)
上图的Linux配置命令(nohup java -jar lvyou-0.0.1-SNAPSHOT.jar > LinuxLvyouSpringboot.log 2>&1 & 这个命令的解释请看上文或者百度一下 或者看官方 https://yq.aliyun.com/articles/665693)
配置到这里貌似基本上OK了,接下来当你点击run时,如果出现打包报错,哦豁,此时可能有坑没有踩完(因为单元测试可能报错导致无法打包,忽略就行了,不需要问为什么,说白了就是单元测试如果有的测试后修改了代码,但是不影响项目运行,那么项目打包的时候不需要关系单元测试就行了,当然最理想的是单元测试也是好的,不影响打包,现实就是往往不理想,总而言之,按着做问题不大)
如果run成功了,控制台会有相应提示,那么直接访问一下你的服务器的接口测试看能够访问不,能够的话,那么恭喜你
run成功会出现上面的按钮,那么从此就一次部署,随时发布,点击它就发布了.(注意:如果修改了配置文件或者重要文件,发布前建议使用maven clean一下,并且把错误的log删除)
不然容易报错 There is insufficient memory for the Java Runtime Environment to continue......
上传到服务器并发布成功(至于运行与否还是用命令检查一下或者看哈服务器日志保险一点)如图
检查发布成功没有(一般只要没有什么大问题以后都是点一下idea右上角按钮就行了),可以看到上图最后一行,可以点击执行Linux的命令,相当于xshell(插件升级后也可以上传文件,有xftp的功能)
出现如图所示就表示发布完全OK,当公司配置好这个后,在家里的电脑只需要输入需要连接的IP地址即可,其他配置自动同步.
取消发布:直接用命令吧,也就那么回事了,只要发布搞定就解放了
--------------------------------------多模块(聚合工程)jar,war包部署-------------------------------------------------------------
多模块(聚合工程)jar,war包部署(右边是官网链接) https://help.aliyun.com/document_detail/100310.html ---叙述不清楚名明白的可以加我V信 在博客首页左上角有
部署前后都可以执行命令脚本,比如关闭端口号,甚至多个端口号(jar包一般使用关闭端口号所在的进程号kill掉就是关闭)
结语:扯那么多,就是推荐个插件而已哈,有什么疑问或者错误还是希望各位大佬在评论指点一下
更多推荐
所有评论(0)