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掉就是关闭)

 

结语:扯那么多,就是推荐个插件而已哈,有什么疑问或者错误还是希望各位大佬在评论指点一下

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐