springboot 项目上线部署用 war 包还是 jar 包部署比较好?有没有具体的原因?

2020-04-02 09:48:25 +08:00
 zhuwd
5362 次点击
所在节点    Java
15 条回复
huntcool001
2020-04-02 09:54:26 +08:00
有已有的 Tomcat 或者其他 servlet 容器,用 war. 否则用 jar. 就是打包方式有点不一样,没啥本质区别.
oneisall8955
2020-04-02 09:57:44 +08:00
wongy
2020-04-02 10:21:40 +08:00
appassembler-maven-plugin 打包 tar.gz
比较喜欢这个的是因为解压后,文件夹 conf = resources
比如在 resources 下放一些三方配置文件,是可以直接读取到的,如果用 jar 那就得新建一个目录来存放
chendy
2020-04-02 10:24:22 +08:00
如果有运维 tomcat 的经验,有相关脚本工具巴拉巴拉,就用 war,否则用 jar
二楼的帖子里有人回用 docker,但是 docker 里不也是跑的 jar 或者 war 么…
napsterwu
2020-04-02 11:55:56 +08:00
有 jsp 就要用 war 否则的话随意。war 也可以用 java -jar 跑起来的
julyclyde
2020-04-02 12:10:59 +08:00
@chendy 回答用 docker 但不说明理由的,基本上都是不动脑的人
hantsy
2020-04-02 12:20:06 +08:00
Thin Jar 吧,Spring 开发人员有开发相应的 Plugin 代替官方 Plugin 。将 Dependencies 和 应用 Jar 分开,比较适合容器部署,那种巨型 Jar 对于容器太扯蛋。不过 Spring Boot 2.3 开始内置 Build Docker 功能了,也是分层( Docker Layers )打包的思路。
hantsy
2020-04-02 12:20:46 +08:00
@julyclyde 这个年代,还没有用 Docker 才是没脑子的人。
hantsy
2020-04-02 12:22:30 +08:00
Spring Boot 的 Thin jar 使用,https://www.baeldung.com/spring-boot-thin-jar
szq8014
2020-04-02 12:29:26 +08:00
thin jar ... 不如叫 "jar with dependencies aside"。。
NeinChn
2020-04-02 12:46:14 +08:00
Docker 跑 Java 坑那么多....
我就没搞懂为什么 Docker 都出来这么多年了,在限制了 core 数量后,core 识别还是物理机核数
cheng6563
2020-04-02 13:43:00 +08:00
就我一个把 fatjar 解开部署的?
julyclyde
2020-04-02 14:02:47 +08:00
@hantsy 用也分用的好用的差啊。
kkkkkrua
2020-04-02 17:37:31 +08:00
@NeinChn #11 内存还要显示设置范围,不然吃的也是宿主机的内存。。
qfdk
2020-04-02 22:56:20 +08:00
‘Make JAR, not WAR.’ — Josh Long

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/658530

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX