【发布时间】:2013-04-24 08:34:59
【问题描述】:
我有一个 web 项目拆分成多个 maven artefacts。
假设是:
- 一个罐子
- B,一个罐子
- C,一个罐子
- D,一场战争
所以,D 依赖于 B 和 C。B 依赖于 A。
这些模块版本并不总是同步的。
A 可以在版本 3-SNAPSHOT 上,而 B 仍然在版本 5 中,并且依赖于 A 版本 2。
我将 jenkins 配置为在构建 A 时级联构建 B,在构建 B 或 C 时级联构建 D。 当在 git 存储库中检测到更改时,这些模块也会重新构建。 Artefacts 通过构建后操作自动部署在 nexus 存储库中。
所以,如果我在 git 中推送 A 的新版本 3-SNAPSHOT,则会构建一个 3-SNAPSHOT jar 并将其推送到 nexus 中。但是,由于 Jenkins 的依赖,触发了 B 版本 2(release 版本)的新构建。构建本身运行正常,但部署到 nexus 失败,因为我不允许重新部署发布工件。
我怎样才能避免这种情况?当工件具有发布版本并且此版本已存在于 nexus 中时,不尝试上传到 nexus 是可以接受的。
我正在使用 Jenkins 1.480 和 maven 3.0.4。
【问题讨论】:
标签: maven jenkins continuous-integration