【发布时间】:2015-04-04 15:02:50
【问题描述】:
假设我们有一组 Maven 工件,它们之间存在一些依赖关系。工件由不同的团队拥有,并且可能同时由多个团队拥有。这是我们的大项目。例如:
projectX --- projectA
| \
projectB projectC
一个问题是:哪个更好,是让所有的子项目在一个大的 Maven 项目中一个版本,还是让每个团队都有自己的工件和自己的发布周期和自己的版本?
分离团队的好处很简单:如果某个团队构建失败 - 其他团队仍然使用该团队提供的旧依赖项并且不会遇到任何问题。此外,在每个全球版本中,我们都会看到哪些模块发生了更改,并且更容易发现问题。
分队的缺点是:
团队 A 更改 projectX。现在所有团队都必须重新发布他们的模块。
projectX 的版本硬编码在 3 个模块中,这是非常容易出错的解决方案。否则,版本可能会被描述为 LATEST 或在父模块中硬编码,但如果 projectX 发生更改,谁会强制团队重新编译他们的模块?..
那么针对这种典型情况的最佳做法是什么?
【问题讨论】: