1.为啥要打包
项目开发完毕后会将前后端应用打包,然后部署到服务器上运行。Java Web应用在Spring Boot之前,通常是打包成war包,结合Tomcat来完成部署。而对于SpringBoot,官方的建议是将Spring Boot应用打包成一个fat jar(SpringBoot默认打包方式),即项目的依赖jar包也会被包含在Spring Boot项目的jar包当中,这个fat jar会把Tomcat内置进来,所以部署时也不需要单独配置Tomcat。这样部署一个SpringBoot应用就非常简单,无需预装任何服务器,只需要上传jar包即可。
2.打包的步骤
打包流程:
3.war包与jar包
springBoot打包方式分别有打包成war包与jar包,这两种打包方式大致相同 。
-
jar包与war包的区别
jar包:JAR包是类的归档文件,JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是, JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。
war包:war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。
-
简单来说就两点不同:
- war包和项目的文件结构保持一致,jar包则不一样。
- jar包里没有静态资源的文件(index.jsp)
两者的优缺点:
war包的优势:能够充分利用独立服务器的能力
jar的优势:比较小巧方便,不依赖tomcat,也不需要过多配置,但某些功能要比独立的服务器要弱
部署普通的spring项目用war包就可以,部署springboot项目用jar包就可以,因为springboot内置tomcat。
4.总结
jar 包更适合微服务架构,减少了外部依赖,服务更加内聚,隔离性好,方便容器化部署;war 包更适用于垂直架构单体架构,在多个项目公用同一容器情况下,可以节省更多资源。