Jenkins可以配置为独立于其他作业运行一组作业吗?

时间:2013-02-06 23:23:05

标签: java maven jenkins

我在SCM中设置了以下Maven项目:

  • A
  • B(取决于A)
  • C(取决于A和B,构建包含A和B工件的存档)

我已经组织了Jenkins,所以有一组工作,其中A运行,然后是B,然后是C.例如,我有一组由SCM提交(mvn clean install)触发的构建,一组运行报告的构建( mvn clean site),以及部署到我们的开发/测试/生产服务器的构建集(mvn clean install +运行一些插件来部署)。

当作业同时运行时会出现问题。例如:

  1. 如果C提交作业与A提交作业的构建时间相同,则C提交作业通常无法从本地m2 repo读取,因为A提交作业可能正在写入本地m2 repo。
  2. 如果提交作业与部署作业同时运行,那么我担心他们正在写入并读取同一本地m2回购。
  3. 理想情况下,我希望能够同时运行这些作业集。

    1. 目前我阻止下游作业在上游作业建立时运行。这阻止了一些问题。但是,我仍然有一个问题,即C正处于构建中,然后A开始构建。是否存在启用“上游项目正在构建时阻止构建”和“下游项目构建时阻止构建”的任何已知问题?
    2. 我可以配置Jenkins,使一组作业使用相同的Maven存储库吗?例如,我希望提交触发的作业使用一个存储库并使用另一个存储库来进行开发部署作业。这是我想要的正确解决方案还是另一种方式?

1 个答案:

答案 0 :(得分:2)

回答问题的第一部分 -

您应该能够同时使用“上游项目构建时的块构建” 和“在下游项目构建时阻止构建”在相同的作业配置中。

当Job-B或Job-C已经运行时,这将阻止Job-A启动,
当Job-A或Job-B已经运行时,将阻止Job-C启动。

干杯