参考:https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment
Spring Boot 的灵活打包选项在部署应用程序时提供了大量选择。可以将 Spring Boot 应用程序部署到各种云平台、容器映像(例如 Docker)或虚拟/真实机器上。

1、解压jar包进行部署运行

如果从容器运行应用程序,则可以使用可执行 jar,但将其分解并以不同方式运行它通常也是一个优势。某些 PaaS 实现也可能选择在运行之前解压缩存档。例如,Cloud Foundry 就是这样运作的。运行解压存档的一种方法是启动适当的启动器,如下所示:

  1. $ jar -xf myapp.jar
  2. $ java org.springframework.boot.loader.JarLauncher

image.png
然后通过命令成功启动项目
image.png :::success 这实际上在启动时(取决于 jar 的大小)比从解压的存档中运行要快一些。
使用JarLauncher应用程序的主要方法具有可预测的类路径顺序的额外好处。jar 包含一个classpath.idx文件,该文件JarLauncher在构建类路径时使用。
classpath.idx文件内容如下:image.png :::

总结

这样在部署项目时,只需要第一次在服务器上传jar包然后进行解压存档文件,之后只要没有依赖jar包的变化,只有业务的改动则只需要替换./BOOT-INF/classes文件即可。这样可以快速部署,如果有依赖的变化,则需要重新上传打包后的jar包进行配置信息的替换。
image.png