我有十幾個互相依賴的Java項目,而且我經常進行交叉切換所有這些項目的更改。但是,許多項目都是可以彼此獨立使用的庫。在Git或Mercurial中管理多個相關項目的最佳方式是什麼?
現在我用水銀subrepos,除了極少數的第三方工具,效果很好支持它 - 這是很難建立的代碼檢查工具,持續集成等
什麼是解決這個問題的最好辦法情況?將所有內容分解爲單獨的項目並構建單獨的JAR?遷移到git並使用git子庫?檢查一切到一個單一的回購,並接受我必須檢查一切使用任何東西?還有別的嗎?
我有十幾個互相依賴的Java項目,而且我經常進行交叉切換所有這些項目的更改。但是,許多項目都是可以彼此獨立使用的庫。在Git或Mercurial中管理多個相關項目的最佳方式是什麼?
現在我用水銀subrepos,除了極少數的第三方工具,效果很好支持它 - 這是很難建立的代碼檢查工具,持續集成等
什麼是解決這個問題的最好辦法情況?將所有內容分解爲單獨的項目並構建單獨的JAR?遷移到git並使用git子庫?檢查一切到一個單一的回購,並接受我必須檢查一切使用任何東西?還有別的嗎?
我會說最好的辦法是削減你的依賴關係,以便他們可以引用外部罐子。通過這種方式,當您做出潛在的重大更改時,您無需立即修復受影響的區域。由於他們依賴於以前建立的jar,它可以讓你正確地隔離你的代碼。如果您使用類似Maven的方式管理您的依賴關係,您還將從更容易跟蹤不同版本的jar的能力中受益。
如果子項目具有足夠的自主性,我建議將它們設置爲單獨的具有獨立VCS回購的maven項目。
這將爲您提供所需的模塊性,並配合工作依賴管理。