SpringBoot 通过 Exploded Archives 的方式部署

avatar 2018年06月17日09:08:22 5 2699 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
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

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

  

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