簡體   English   中英

使用Maven和多個git存儲庫-減輕痛苦

[英]Working with maven and multiple git repositories - reducing the pain

我們最近從SVN遷移到git,其中大多數項目都在其自己的存儲庫中(其中約有70個),而SVN則在單個存儲庫中包含大多數代碼。 我們從此java來源構建了大約十二種不同的應用程序。 所有應用程序都在* nix服務器上運行。 我們使用maven和nexus進行構建。 當功能涉及多個倉庫時,我們中的許多人都在為開發功能而苦苦掙扎。 以下是一些挑戰:

  • 開發人員必須分別分支每個存儲庫-我們對一個功能的所有分支使用相同的名稱,以使跟蹤難度降低。

  • 必須更新所有存儲庫的poms,以指向每個存儲庫工件的更新版本。 如果多個人在同一個分支上工作,則可能會有很多合並其他pom更改。 當我對倉庫進行更改時,工件將重命名為“ -SNAPSHOT”,這意味着需要進行更多的pom更新。

  • 需要按正確的順序推送更改,否則我們的自動構建將失敗,例如:repo A取決於對repo B的更改; 如果在構建和部署存儲庫B之前推送存儲庫A,則不會構建存儲庫A。

  • 審查功能的人員必須查看多個存儲庫中的更改。

  • 當功能從其分支合並到主模塊時,必須記住所有已觸及的存儲庫。

看起來最好是改用單一倉庫的方法,但是那里有一些缺點:

  • 用maven構建整個代碼庫需要很長時間。 (為什么maven不能更像make,僅構建已更改或依賴項已更改的事物?)

  • 每次推送都會啟動大量的構建和許多單元測試,而不僅僅是一個倉庫的工件構建和測試。

  • 通常在一個或兩個存儲庫中工作的開發人員更喜歡這個新的多存儲庫環境,並且會拒絕更改。

我研究了git子模塊和子樹,它們似乎無法解決我們的許多問題(不確定Google Repo)。 我們中有些人使用諸如“ mu”之類的工具來提供幫助。 如果有一個工具包可以幫助開發人員維護poms中的版本,並跟蹤存儲庫中的更改,那就太好了。

讓我知道您是否有一套用於簡化這種環境下的開發的過程或工具。

大多數項目都在自己的存儲庫中(其中約70個)。

對我來說,這就是問題的開始。 我的投票贊成大幅減少該數字。

如果您真的不想要一個回購協議(1個回購協議得到我的投票),則可以將代碼庫分為n * change_often回購協議和1 * change_rarely回購協議。 保持n小很重要。 這樣,您將避免重建很少更改的位。

同樣,即使只有一個存儲庫,您也無需按源引用所有內容,也無需將二進制文件用於基礎庫。 當基礎庫發生更改時,進行更改的人員也可以一次性更新所有參考,以便所有項目都是最新的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM