【发布时间】:2020-08-05 22:18:53
【问题描述】:
给定一个项目,它分为 3 个模块 A、B 和 C。这三个模块由三个团队在不同的 repos 中开发。此外,A、B 和 C 之间存在依赖关系。一开始,一切都运作良好。每个团队都可以从其他团队导入依赖项并在某个文件中配置依赖项。但是,假设模块 A 出于某种重构原因需要调整类。调整可能只是更改某些类的依赖引用(例如将类从“a-folder-1”移动到“a-folder-2”)。当 A 推送代码时,测试不会失败,因为对于 A 的 repo,没有任何问题。但是,当 B 或 C 推送代码时,他们将面临依赖问题,因为他们仍然使用旧的方式来导入已重构的 A 中的类。解决方法很简单,B和C只需要调整依赖配置文件就可以正确地从A导入类。
我的问题是,有没有什么框架或工具可以帮助我们避免此类问题? 目前,每次有人更改依赖项时,其他人只能调整自己的依赖项配置。项目小的时候很简单,但是团队多的时候就麻烦了。因为每次有人想要推送新代码时,他都可能面临依赖问题。
【问题讨论】:
-
解决方案 - 接口代码。
-
版本每个构建,以便 B 和 C 可以在方便时更新对 A 的依赖。但是为什么同一个项目有 3 个不同的仓库呢?为整个代码库提供 1 个 repo,包含 3 个 maven/gradle 模块。重构将强制更新其他模块(假设不允许合并构建失败)。
-
每次 B 或 C 尝试推送代码时,他们都会使用 A 的最新版本。因为没有必要为他们定义版本。不同的repo有自己的开发速度。即使他们在做同一个项目,当项目真的很大时,他们确实需要分成不同的repos。
标签: java gradle dependencies