SpringBoot 通过 Exploded Archives 的方式部署

avatar 2018年06月17日09:08:22 5 3143 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此
之前部署 SpringBoot 一直是用可执行 jar 的方式。

java -jar codergroup-1.0.0.jar 就可以启动项目,为了能在后台运行,通常我们会使用这行命令

nohup java -jar codergroup-1.0.0.jar >temp.txt &

这种方式部署最大的好处,我觉得还是操作简单,无需安装外置的 Tomcat,所以完全可以摆脱使用传统的 war 的方式部署。

但是,jar 方式部署的话,我们就不能使用像 war 那种,放在 tomcat 下的 webapps 里就能解压,然后可以直接修改里面的 classes(包括静态文件,配置文件,java字节码文件)。

当我将项目部署到服务器上,突然发现有一个bug,或者有一个错误的链接需要修改。我们可以在本地修改,然后重新使用 maven 打包,再上传新的 jar 包,再将服务器上原来的服务杀死,重新执行 java -jar 命令。显示,这太麻烦了,一方面比较费时间,另一方面网站会有十几秒钟停止访问。

于是,我开始想用 war 的方式部署,但是一直出现  2 Spring WebApplicationInitializers detected on classpath 报错,解决了很久未果。于是,暂时放弃。

后来去查看官方文档,找到更好的方法。

我们可以解压 jar,然后运行里面的启动类

unzip -q codergroup-1.0.0.jar

java org.springframework.boot.loader.JarLauncher

运行结果如下

这种情况下,不能属于前台启动,我们建议使用后台启动

nohup java org.springframework.boot.loader.JarLauncher >output.txt &

这时候,控制台信息将写入到 output.txt 文件

  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0