gpt4 book ai didi

build-automation - 在 Gradle 中递归发布是否可能/容易?

转载 作者:行者123 更新时间:2023-12-04 08:35:52 25 4
gpt4 key购买 nike

我们有一个基于 Ant 和 Ivy 的构建管理系统,它基本上由一个共享的 ant 文件和一组围绕目录结构的约定组成。
我试图克服的一个障碍是相当常见的“递归发布”情况。比如说,我们有 5 个内部代码模块,它们的依赖关系图如下:
Module dependencies

  • 每个模块都应该将其 ivy 工件发布到我们的内部仓库
  • 尚未清除部署以进行测试的工件应具有“集成”状态
  • 可部署到测试的工件应具有“里程碑”状态(由开发人员手动提升)
  • 经测试人员验证的工件应具有“发布”状态

  • 假设开发人员已在本地 checkout 所有 5 个模块,并对它们进行了全部更改。现在他想将他所有的变化都提升到“里程碑”的地位。换句话说, Ivy repo 中应该发生的事情是:
  • e-1.0-RC1 发布
  • d-1.1-RC2 被发布,引用 e-1.0-RC1 作为依赖
  • c-2.0-RC1 被发布,引用 d-1.1-RC2 作为依赖
  • b-3.3-RC1 被发布,引用 e-1.0-RC1 作为依赖
  • 最后,a-7.1-RC2 被发布,引用 c-2.0-RC1 和 b-3.3-RC1 作为依赖项。

  • 我还没有找到使用 ivy + ant 的简单方法(Ivy promise 类似的东西称为递归交付,但我找不到任何可行的示例)。
    Gradle 在这里听起来很有希望,因为它似乎对多项目构建有很好的支持。我确实浏览了文档,但没有立即找到这个案例作为示例。有没有
    使用gradle实现这一目标的简单方法?

    最佳答案

    我能想到的唯一方法是使用主构建文件,该文件将版本号向下传播到每个模块的单独构建文件。这具有将您的五个模块绑定(bind)到一个需要作为单个实体进行管理的单元的不幸副作用,但这可能是实现您正在寻找的唯一方法。

    关于build-automation - 在 Gradle 中递归发布是否可能/容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6544605/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com