我有以下 git 存储库:
- 可重用A
- 可重用B
- 可重用C
- 申请1
ReusableB 和 C 都依赖于 ReusableA。因此,两个存储库都包含 ReusableA 作为 git 子模块。 Application1 依赖于 ReusableB 和 ReusableC,所以它包括两个作为 git 子模块。但是,这应该会导致 Application1 存储库包含 ReusableA 的两个实例(可能是不同版本)。所以我的问题基本上是,这是我应该避免的事情,还是我可以在 Application1 中制作一个构建脚本,它只是忽略其中一个 ReusableA 实例(最好我也不想初始化它)?
你能给我一些建议吗?如果这真的是要避免的情况,我怎么能做到这一点?最佳做法?
最佳答案
在这种情况下,最好也包括ReusableA
。作为 Application1
的直接子模块.
Application1
将仅使用自己指定的 ReleaseA
版本来构建,有效地“覆盖”了 ReusableB
使用的版本和 ReusableC
.
- 这在开发阶段很常见,您不能期望所有模块都遵循相同的依赖关系。
- 但是,在集成或组装阶段,您需要检测并报告这些情况(其中 ReusableA 与
Application1
、ReusableB
和ReusableC
之间的不同版本一起使用) - 目标是构建最终版本,该版本将使用一个且只有一个版本的
ReusableA
投入生产.
关于git - 如何组织具有可重用组件的存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3685252/