V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
AerithLoveMe
V2EX  ›  问与答

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

  •  
  •   AerithLoveMe · 2020-09-29 07:54:26 +08:00 · 1421 次点击
    这是一个创建于 1507 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    SpringBoot 很好,但使用的人提前优化就不是什么好事了,一年下来流量 1 万不到的项目整微服务。
    AerithLoveMe
        9
    AerithLoveMe  
    OP
       2020-09-29 08:31:55 +08:00
    @xiangyuecn 我这个就是练习。并不打算上线的。。就是想问问部署的话形式是什么样子的
    yalin
        10
    yalin  
       2020-09-29 08:32:05 +08:00
    一个人的微服务?
    AerithLoveMe
        11
    AerithLoveMe  
    OP
       2020-09-29 08:33:17 +08:00
    @yalin 啊。我这个只是我一个人单独做的练习。😂
    xiangyuecn
        12
    xiangyuecn  
       2020-09-29 08:35:00 +08:00
    @AerithLoveMe 参考 2 楼打包,clean 都可以省了,直接 parent 上点一下 package,每个模块下面 target 目录里面就有生成的 jar,直接用 java -jar xxxx.jar 来启动。因为这个逼玩意每个包里面默认都带了 tomcat 好像,小项目想想就可怕
    AerithLoveMe
        13
    AerithLoveMe  
    OP
       2020-09-29 08:37:11 +08:00
    @xiangyuecn 嗯 大概了解了 谢谢
    yalin
        14
    yalin  
       2020-09-29 08:42:05 +08:00
    @AerithLoveMe jar 做成 docker 镜像,k8s 从 docker 中拉 springboot 镜像
    hand515
        15
    hand515  
       2020-09-29 08:55:02 +08:00
    一个进程对应一个模块,各模块间不直接依赖
    ,公共代码和公共 API 定义放到一个模块,其他模块依赖这个模块
    XiLingHost
        16
    XiLingHost  
       2020-09-29 16:24:56 +08:00
    用 jib 做镜像吧,直接构建到 registry 里
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5332 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 07:08 · PVG 15:08 · LAX 23:08 · JFK 02:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.