雖然我們是一個使用SVN進行源代碼管理和Apache Ivy進行依賴管理的Java陣營,但這個問題廣泛適用於任何平臺/語言,SCM和工件存儲庫工具。同步版本控制和工件庫
我的技術主管和我帶領公司邁出了第一步,使用Ivy這樣的依賴管理器來管理我們所有的JAR。我們已經建立了我們稱之爲「Ivy Repo」的地方,這是我們內部(由我們開發)JAR以及常用重用依賴項(Apache JAR,Spring等)的地方。
我們開始遇到問題,其中一個開發商將不得不做出改變我們的內部共享JAR(Commons.jar
),然後運行之前的代碼更改的<ivy:publish>
已代碼審查,致力於爲SVN和建CI服務器。這種情況發生在開發人員正在研究某個項目中的錯誤修復或新功能時,但需要對Commons.jar等依賴項進行修改才能完成其任務。
因此,我們處於常春藤和SVN不同步的情況。
很明顯,我們可以立即制定一個規則,即在沒有先審查代碼,提交併測試代碼的情況下,不允許任何人發佈。或者,我們可以完全禁止開發者發佈。
在走向任何一條路線(我們傾向於後者)之前,我們想知道其他團隊是否遇到過相同的問題,並採取了哪些解決方案來防止這種情況發生。
也許像Artifactory或SonaType這樣的工具值得研究,但我們都沒有與他們的經驗,它看起來並不像他們支持這些類型的業務規則。
簡而言之:我們正在尋找一種方式,以防止過早JAR出版使出版始終是我們的標準code
>>review
>>commit
>>CI
>>deploy
週期最後階段。
在此先感謝!
謝謝noamt - 聽起來像Artifactory是要走的路! – IAmYourFaja