3

我有一个分成多个 Maven 人工制品的 Web 项目。

假设它是:

  • 一、罐子
  • B、一个罐子
  • C、一个罐子
  • D、战争

因此,D 依赖于 B 和 C。B 依赖于 A。

这些模块版本并不总是同步的。

A 可以在版本 3-SNAPSHOT 上,而 B 仍然在版本 5 中,并且依赖于 A 版本 2。

我将詹金斯配置为在构建 A 时级联构建 B,在构建 B 或 C 时级联构建 D。当在 git 存储库中检测到更改时,这些模块也会重新构建。Artefacts 通过构建后操作自动部署在 nexus 存储库中。

因此,如果我在 git 中推送 A 的新版本 3-SNAPSHOT,则会构建一个 3-SNAPSHOT jar 并将其推送到 nexus 中。但是,由于 Jenkins 的依赖,触发了 B 版本 2(发布版本)的新构建。构建本身运行良好,但部署到 nexus 失败,因为我不允许重新部署发布工件。

我怎样才能避免这种情况?当工件具有发布版本并且此版本已存在于 nexus 中时,不尝试上传到 nexus 是可以接受的。

我正在使用 Jenkins 1.480 和 maven 3.0.4。

4

1 回答 1

0

您可以使用https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin触发参数化构建并将参数添加到作业 B。

条件构建插件也可能有帮助https://wiki.jenkins-ci.org/display/JENKINS/Conditional+BuildStep+Plugin

于 2013-04-24T09:18:23.013 回答