AerithLoveMe
V2EX  ›  问与答

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

  •  
  •   AerithLoveMe · Sep 29, 2020 · 2170 views
    This topic created in 2237 days ago, the information mentioned may be changed or developed.

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

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

    SpringBoot 很好,但使用的人提前优化就不是什么好事了,一年下来流量 1 万不到的项目整微服务。
    AerithLoveMe
    AerithLoveMe
    OP
    Sep 29, 2020
    9
    @xiangyuecn 我这个就是练习。并不打算上线的。。就是想问问部署的话形式是什么样子的
    yalin
    yalin
    Sep 29, 2020
    10
    一个人的微服务?
    AerithLoveMe
    AerithLoveMe
    OP
    Sep 29, 2020
    11
    @yalin 啊。我这个只是我一个人单独做的练习。😂
    xiangyuecn
    xiangyuecn
    Sep 29, 2020
    12
    @AerithLoveMe 参考 2 楼打包,clean 都可以省了,直接 parent 上点一下 package,每个模块下面 target 目录里面就有生成的 jar,直接用 java -jar xxxx.jar 来启动。因为这个逼玩意每个包里面默认都带了 tomcat 好像,小项目想想就可怕
    AerithLoveMe
    AerithLoveMe
    OP
    Sep 29, 2020
    13
    @xiangyuecn 嗯 大概了解了 谢谢
    yalin
    yalin
    Sep 29, 2020
    14
    @AerithLoveMe jar 做成 docker 镜像,k8s 从 docker 中拉 springboot 镜像
    Finest
    Finest
    Sep 29, 2020
    15
    一个进程对应一个模块,各模块间不直接依赖
    ,公共代码和公共 API 定义放到一个模块,其他模块依赖这个模块
    KagurazakaNyaa
    KagurazakaNyaa
    Sep 29, 2020
    16
    用 jib 做镜像吧,直接构建到 registry 里
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2075 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 06:10 · PVG 14:10 · LAX 22:10 · JFK 01:10
    ♥ Do have faith in what you're doing.