1

有一個複雜的多模塊項目,我正在從螞蟻移動。 我們想要實現的事情是:MAVEN:多模塊項目,如何爲構建添加不同的環境

  1. 易於開發和開發人員包裝。

示例:父子項目 兒子

  Parent Project 
       SON 
        GRANDSON A 
        GRANDSON B 
       DAUGTER (DEPENDS ON SON) 
        GRANDSON C 
        GRANDSON D 

我想的是,當開發人員正在努力女兒項目,他只是下載父項目和SON的依賴應該從svn存儲庫來解決。我知道可以通過在pom.xml中定義dependecy來完成,但這會與我的第二個要求相沖突。

2)要下載父項目的所有女兒和兒子並編譯它們,以便可以通過像詹金斯這樣的自動構建管理器來檢查一致性。此外,如果構建成功,我還想將修改標誌發佈到Maven存儲庫。請注意,修訂需要成爲每個模塊的頭部。

3)在這兩個過程中,我想創建一個tar文件或我自己的樣式目錄,根據我的需要在不同目錄中包含不同的jar文件。 (我可以通過添加ant copy命令來實現此目的;任何更好的想法都可以實現)

maven實現它的標準方法是什麼?

+0

您是否將每個子項目都保存在自己的SVN存儲庫中?你有本地的Maven工件庫,如Nexus? – Boj 2014-12-02 11:18:43

+0

是的,我想保持在單獨的回購。是的,我與Archiva一起工作 - 本地Maven神器經理 – 2014-12-02 11:19:59

+0

如果你喜歡將它們構建在一起,你應該將它們保存在一個單獨的svn倉庫中,或者將它們更精確地放到同一個主幹中。否則,你走錯了路。 – khmarbaise 2014-12-02 11:40:46

回答

0

在您的Maven層次結構中,只有葉子項目(您的示例中的孫子項目)將是包含代碼並生成工件(例如jar)的實際模塊。內部節點(Parent,Son,Daughter)將僅用於保存層次結構中模塊共享的常見配置和依賴關係。因此,女兒不能依賴兒子,但孫子C可以依靠孫子A爲例。

如果父項目層次結構有自己的生命週期,即poms可以獨立發佈,他們應該在SVN模塊上。開發子模塊的開發人員甚至不需要下載這些poms,因爲如果他們由Jenkins部署在那裏,它們將從Archiva自動檢索。有關類似情況,請參閱this answer

但是,您看到表示您希望構建和發佈所有模塊是同一時間。在這種情況下,通過將所有項目保存在同一個SVN存儲庫中,您可以擁有相同的pom層次結構。

相關問題