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

Java SpringCloud 项目 CI/CD 问题请教

  •  
  •   louisxxx · 262 天前 · 1144 次点击
    这是一个创建于 262 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以前做 PHP Laravel 项目, 因为项目代码都在一个仓库里面,当合并请求审批后可自动触发 Bitbucket pipelines CI/CD 非常方便且简单。

    现在 SpringCloud 项目里一堆依赖 CI/CD 时有构建顺序与依赖问题,请教下你们都怎么管理?

    例如 SpringCloud 项目有这些模块并且放在不同的仓库
    access - 审计模块
    auth - 登陆模块
    gateway - 网关权限管理
    message - 通知发送
    parent - 公共模块
    product - 产品模块
    common - 基础公共模块
    system - 系统模块

    如果用 Bitbucket pipelines CI/CD 没办法管理依赖和构建顺序。
    目前我们有单独写一个脚本来调用 Bitbucket API 并安依赖顺序去执行 pipelines CI/CD ,但是非常的不方便,不像 PHP 那样丝滑,合并请求审核完自动 CI/CD 。-- 如果把这个项目放到单独的仓库中用 pipeline 执行又涉及到跨多个仓库拉代码,且无法自动得知什么时候需要启动构建。
    10 条回复    2024-03-06 10:08:23 +08:00
    yuanmomo
        1
    yuanmomo  
       262 天前 via iPhone
    看了一下,好像整个是一个项目,然后分了很多模块,然后不同的模块一个仓库,这样就要处理模块之间的依赖问题,其次就是修改其中一个字模块,又需要触发整个项目的编译?
    louisxxx
        2
    louisxxx  
    OP
       262 天前
    @yuanmomo 是的,正常修改一个模块是要触发整体构。
    securityCoding
        3
    securityCoding  
       262 天前 via Android
    没懂,运行时模块依赖不是有 maven 或者 gradle 吗?为什么要手动处理
    Sigrdirfa
        4
    Sigrdirfa  
       262 天前 via Android
    不用 maven ?
    wxw752
        5
    wxw752  
       262 天前
    我经历过的都是手动去 jenkins 里点一下构建,因为启动比较耗时,每个微服务多服务器部署要做滚动发布,没有见过哪个项目推代码自动构建的。
    qinxi
        6
    qinxi  
       262 天前
    jenkins 可以选择项目依赖. 选上其他项目就好了
    rsyjjsn
        7
    rsyjjsn  
       262 天前
    你有 ABCD 项目,在 Jenkins 的 A 里面构建完成依赖 BCD ,同理 B 里面依赖 ACD ,这样任意一个项目触发完成后,都会触发剩余的三个项目
    Seulgi
        8
    Seulgi  
       262 天前
    你所谓的模块是在一个项目里吗?如果在一个项目里,触发项目的 maven 编译子项目就会全部编译。如果你是不同的项目,那你们需要搭建一个 maven 私服,不同模块的项目写完触发 ci cd 也更新 maven 私服版本,其他模块相互引用用 maven 私服拉依赖。
    wu00
        9
    wu00  
       262 天前
    干过类似的事情,多个项目同一个仓库;
    测试环境每次 merge request 自动触发构建部署,但是又想把构建时间控制在 2 分钟,而不是每次构建所有项目;
    所以做了以下事情:
    - bash 脚本中提前定义好项目直接的依赖和项目根目录路径
    - 触发构建时,git diff 遍历哪些项目有代码变更需要构建
    - 查找需要构建项目的依赖项目,加入到构建列表
    halov
        10
    halov  
       261 天前
    可以使用 jenkins pipeline 来保证构建执行顺序
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2802 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:12 · PVG 22:12 · LAX 06:12 · JFK 09:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.