gpt4 book ai didi

ant - Jenkins仅在必要时触发依赖构建?

转载 作者:行者123 更新时间:2023-12-04 05:06:51 24 4
gpt4 key购买 nike

我有以下构建场景:

项目 C 依赖于项目 B,而项目 B 又依赖于项目 A

项目 X 依赖于 C,项目 Y 依赖于 B,项目 Z 依赖于 A。

还有许多其他具有依赖关系的模块,但最“复杂”的构建关系是与项目 X。为了在 Jenkins 中进行设置,我使用了参数化触发器插件,并带有“阻塞直到触发项目完成构建”选项。每个可构建模块都有自己的 Jenkins 作业,该插件用于阻止必要的依赖构建作业。

我在这个设置中遇到了 2 个问题。

  • 项目 A 和 B 被多次构建,因为它们在项目 X、Y、Z 等的传递依赖链中。
  • Jenkins 有时会被完全阻止构建项目,因为作业 X、Y、Z 等的构建已经填满了所有可用的执行程序(由 scm 更改触发),并且依赖的项目在等待构建的队列中。

  • 我正在寻找有关如何为此类构建环境配置 Jenkins 的建议。我是 Jenkins 的新手,所以我不知道有哪些选项可以解决这个问题。

    编辑:

    所有作业都由 SCM 更改触发。依赖项目也由 Parameterized Trigger Plugin 触发; “阻止直到触发的项目完成构建”选项。

    最佳答案

    Jenkins 有多种触发构建的方式。最常见的是通过监视存储库更改。

    但是,您也可以在另一个作业完成构建后自动触发构建。这是内置在 Jenkins 中的。查看 Build Triggers 下并选中复选框 Build after other projects are built ,或在 Post-Build 部分中,选择 Build Other Projects post-build 操作。并且,您可以在构建中使用多个触发器,因此如果来自另一个项目的依赖项发生更改或源文件发生更改,则可能会发生构建。

    如果您使用 Maven 或 Ivy,如果项目使用的 Maven/Ivy jar 依赖项发生更改,则可以使用插件来触发构建。

    另一个有用的插件是 Copy Artifacts Plugin .这允许您将构建工件从项目“X”复制到项目“Y”,以便项目“Y”用于构建。

    关于ant - Jenkins仅在必要时触发依赖构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15437735/

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