小白提问: SpringBoot 多模块如何打包部署

2020-09-29 07:54:26 +08:00
 AerithLoveMe

请问一个 SpringBoot 标准的 Web 工程是如何部署的呢?也就是一个总体父工程,下面是各个模块的子工程,子工程直接可能相互依赖,比如 Web 层和网关层,以及各个分功能模块,我之前做的是每个模块都有一个启动类,但这个貌似不能打包。所以我想问究竟如何部署?因为我这个也涉及一点微服务,还是每个模块都是单独打包部署?

1450 次点击
所在节点    问与答
16 条回复
manami
2020-09-29 08:01:04 +08:00
docker 大法好
wangyanrui
2020-09-29 08:07:18 +08:00
没看懂,多个 module,如果都有启动类,不应该是多个服务嘛😂打包直接 mvn clean package 就可以了呀。是不是 pom.xml 之间没写好
codingadog
2020-09-29 08:08:34 +08:00
为啥会每个模块都有启动类。。
AerithLoveMe
2020-09-29 08:08:40 +08:00
@wangyanrui 那我这个就应该按照微服务的打包方式来咯?每个模块单独部署。
AerithLoveMe
2020-09-29 08:10:09 +08:00
@codingadog 因为我都把 web 的功能细分成每个模块了。比如上传图片,视频点播,所以每个模块都需要单独启动。
iphoneXr
2020-09-29 08:22:27 +08:00
我说下我知道的一些方法吧,
1 、直接在顶级 pom 文件里面把所有依赖的模块先打包了
2 、写个 jar 程序专门来进行打包,分别找出各项目的依赖子项目并排序打包
3 、通过 jenkins 的依次打包功能,也就是每个子模块都做一个 jobs
我们家在用方法 2,上家用的是方法 1,仅供参考哈。
wangyanrui
2020-09-29 08:27:10 +08:00
@AerithLoveMe 都拆开了我的理解应该多启动
xiangyuecn
2020-09-29 08:30:24 +08:00
发现好多新人 动不动就来个微服务,本来 700mb 内存能搞定的 hello word,硬是要 10 个 G 内存才能带的动😂

SpringBoot 很好,但使用的人提前优化就不是什么好事了,一年下来流量 1 万不到的项目整微服务。
AerithLoveMe
2020-09-29 08:31:55 +08:00
@xiangyuecn 我这个就是练习。并不打算上线的。。就是想问问部署的话形式是什么样子的
yalin
2020-09-29 08:32:05 +08:00
一个人的微服务?
AerithLoveMe
2020-09-29 08:33:17 +08:00
@yalin 啊。我这个只是我一个人单独做的练习。😂
xiangyuecn
2020-09-29 08:35:00 +08:00
@AerithLoveMe 参考 2 楼打包,clean 都可以省了,直接 parent 上点一下 package,每个模块下面 target 目录里面就有生成的 jar,直接用 java -jar xxxx.jar 来启动。因为这个逼玩意每个包里面默认都带了 tomcat 好像,小项目想想就可怕
AerithLoveMe
2020-09-29 08:37:11 +08:00
@xiangyuecn 嗯 大概了解了 谢谢
yalin
2020-09-29 08:42:05 +08:00
@AerithLoveMe jar 做成 docker 镜像,k8s 从 docker 中拉 springboot 镜像
hand515
2020-09-29 08:55:02 +08:00
一个进程对应一个模块,各模块间不直接依赖
,公共代码和公共 API 定义放到一个模块,其他模块依赖这个模块
XiLingHost
2020-09-29 16:24:56 +08:00
用 jib 做镜像吧,直接构建到 registry 里

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

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

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

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

© 2021 V2EX