2010-09-10 84 views
2

我有以下的Git倉庫:如何組織儲存庫可重用的組件

  • ReusableA
  • ReusableB
  • ReusableC
  • 應用1

ReusableB和C都依賴於ReusableA。因此這兩個存儲庫都包含ReusableA作爲git子模塊。 Application1依賴於ReusableB和ReusableC,因此它包含兩個作爲git子模塊。但是,這應該會導致Application1存儲庫包含ReusableA的兩個實例(可能有不同的版本)。所以我的問題基本上是這樣的,我應該避免,或者我可以在Application1中構建一個簡單地忽略其中一個ReusableA實例的構建腳本(最好我不想初始化它)?

你能給我一些建議嗎?如果這真的是一個避免的情況,我怎麼能做到這一點?最佳實踐?

回答

2

在這種情況下,最好還包括ReusableA作爲Application1的直接子模塊。
Application1將通過僅使用其自己的指定版本ReleaseA來生成,有效地「覆蓋」ReusableBReusableC所使用的版本。

  • 這在開發階段非常常見,您不能指望所有模塊都遵守相同的依賴關係。
  • 然而,在整合或安裝階段,需要檢測和報告這些情況(其中ReusableA與Application1ReusableB之間不同版本的使用,ReusableC
  • 的目標是建立最終版本將去投入生產,並且只有一個版本的ReusableA