1

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

  • 一种
  • 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 存储库读取,因为 A 提交作业可能正在写入本地 m2 存储库。
  2. 如果 Commit 作业与 Deploy 作业同时运行,那么我担心它们正在写入和读取同一个本地 m2 存储库。

理想情况下,我希望保持同时运行这些作业集的能力。

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

1 回答 1

2

要回答您问题的第一部分-

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

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

干杯

于 2013-02-07T12:16:43.227 回答