【发布时间】:2015-02-04 16:41:42
【问题描述】:
我在 Maven 项目中工作,在多个级别上具有多个依赖项,每次执行主要项目的发布时,我们都必须手动创建很多次要版本。我将尝试解释情况。 我的情况如下:
项目A
- 依赖 B
- 依赖关系E
- 依赖 F
- 依赖G
- 依赖 C
- 依赖 G
- 依赖H
- 依赖 G
- 依赖D
每个依赖都是一个独立的maven项目,项目内部存在很多依赖级别。如果您修改依赖项 G 的某些代码并且您的意图是生成项目 A 版本,您必须:
- 生成项目 G 的发布
- 更新项目 F 的依赖 G 版本
- 生成项目 F 的发布
- 更新项目 B 上的依赖 F 版本
- 生成项目 B 的发布
- 更新项目 A 的依赖 B 版本
- 生成项目 A 的发布
我的目的是自动化这个过程。 google了几天也没找到类似的问题。
您能想出一些解决方案来自动生成级联版本的任务吗? 我正在考虑基于 maven 和 Jenkins 任务的解决方案,但它看起来非常复杂。
【问题讨论】:
-
我能问一下 A、B、F 和 G 之间的关系吗?有一些图书馆和一些服务吗? A、B、F 和 G 可以独立发布吗?是否有任何项目具有编译时依赖项?是否有任何项目只有运行时依赖项?
-
另外,“发布”是什么意思,您是否也“部署”,有什么不同吗?例如,这些“版本”是否只是制作了一个像 nexus 这样的工件,还是这些版本实际上部署到服务器?
-
也总是必须以这种方式发布这些内容吗?或者有时它们是独立发布的(作为微服务和库),但有时它们必须作为任意集合发布。例如,更新交叉安全性或记录许多通常独立部署但今天必须一起发布的东西?
-
请注意,现在有一个 devops.stackexchange.com 网站处于测试阶段,如果这个问题可能会吸引有此特定场景经验的人的更多关注。