2015-07-22 92 views
1

我有BigSystem,它由多個子系統組成。每個子系統都是一個單獨的項目,編譯成一個應用程序,具有自己的發佈週期和Git存儲庫,並且分開維護。 BigSystem只是它所包含的子系統的聚合。使用Maven/Git彙總多個項目的版本控制

我想標記和維護BigSystem相對於特定版本的SubSystems的版本,即通過構建BigSystem-1.1.0,我將實際上構建SubSystemA-1.0.1,SubSystemB-2.2.0和SubSystemC- 2.5.0。

BigSystem-1.0.0 
    SubSystemA-1.0.1 
    SubSystemB-2.0.0 
    SubSystemC-2.0.4 

BigSystem-1.1.0 
    SubSystemA-1.0.1 
    SubSystemB-2.2.0 
    SubSystemC-2.5.0 

BigSystem-1.2.0-SNAPSPHOT 
    SubSystemA-1.0.2-SNAPSHOT 
    SubSystemB-2.2.0 
    SubSystemC-2.6.0-SNAPSHOT 

我一直在探索Maven的聚集,Maven的繼承和Git的子模塊來實現這一點,但我一直沒能找到一個乾淨的解決方案。有小費嗎?謝謝!

回答

1

Git子模塊將幫助彙總源依賴項,這意味着BigSystem將記錄每個子系統源回購的確切SHA1。

從每個子系統如何爲內置獨立的:它可以生成使用:

  • 源的依賴,在這種情況下你建立所有的依賴,每次你需要製作一個子系統交付
  • 二進制依賴關係,在這種情況下,源系統SubSystemA包含一個pom.xml,其中聲明需要編譯的確切版本和依賴關係。
    這也意味着編譯子系統產生的交付存儲在像Nexus這樣的工件存儲庫中。
+0

我最後使用了子模塊,雖然工作流非常笨重。 –