2017-03-31 92 views
0

我有Maven項目A,它依賴於Maven項目B.這些由我在GitHub存儲庫中維護。項目B是一個將被許多其他項目使用的實用程序項目。項目A是使用項目B中的實用程序的應用程序。我的Maven項目不存在於任何公共存儲庫中,目前正在開發中。
現在,我希望另一個人與我的項目A進行整合。我不能只打包我的項目並將它們發送,因爲它們會不斷變化。他/她必須在他/她的構建環境中籤出我的代碼,並將我的部件集成到他/她的應用程序中,並定期從我的回購庫中抽取更改。
這裏的要點是,我希望兩個項目齊頭並進。谷歌搜索後,我結束了這兩個解決方案:
1)使他們同一父項目的兄弟姐妹。這種方法的優點是,集成商在簽出父項目時將始終採取所有依賴關係。但是,這個解決方案永遠將這兩個項目緊密地結合在一起項目B是一個實用項目,將被不關心項目A的其他項目使用。
2)「手動」指示集成商簽出兩個項目並處理對他/她的依賴關係,例如,通過將項目安裝到他/她的本地Maven repo或讓IDE解決工作區依賴關係。這種方式雖然我必須手動告訴集成商的依賴關係,他/她將不得不記得將更新版本重新安裝到本地倉庫。如何讓兩個Maven項目鬆散耦合?

是否有任何其他策略讓集成商以自動方式獲取所有依賴關係,並且能夠自動構建我的代碼而無需人工干預?另一個要求是項目B不會與項目A緊密耦合,因此未來可以由其他項目自由使用。

我腦海中出現的一些問題必須與Maven依賴關係方案上的不同結構或者支持該過程的持續集成組件有關。然而,我並沒有明確的策略來解決這個問題,或者甚至有可能......任何線索?

回答

0

如果你的項目是開源的,你可以使用這個過程:http://central.sonatype.org/pages/ossrh-guide.html 避免必須託管自己的Maven回購。

您的其他選擇是站起來您自己的Nexus/Maven存儲庫,並讓依賴您的構件的項目在settings.xml文件中配置另一個存儲庫,以便他們可以檢查Nexus存儲庫中的快照部署。您可以根據需要將快照部署到Maven存儲庫中。

+0

是的,使用這一段時間似乎做了這項工作。接受答案並致謝! –