一個關(guān)于jar包管理的疑問

jar 包管理

最近遇到一個關(guān)于 jar 包管理的疑問。記錄下,說不定哪天遇到最佳實踐。


有一個工程 X,對應(yīng)一個 jar 包,用于做接口定義,當(dāng)前版本為 1.0.0。

佳佳、包包兩人,分別要在工程 X 中定義新方法 A 和 B。

并且在項目 P 中實現(xiàn)方法。

佳佳定義了新的方法 A,將 jar 包版本升級到 1.0.1-SNAPSHOT,deploy 到倉庫。

包包也定義了新的方法 B,也將 jar 包版本升級到 1.0.1-SNAPSHOT,deploy 到了倉庫。

佳佳在某次重啟的時候,發(fā)現(xiàn) IDE 提示沒有實現(xiàn)方法 B。


于是,佳佳和包包準(zhǔn)備協(xié)商一種 jar 包管理的方法。

考慮以下幾點:

  1. 兩人不能共用一個版本的 jar 包。佳佳的程序只需要關(guān)注方法 A,而不可能實現(xiàn)包包需要實現(xiàn)的 method B。

  2. 考慮到兩人的代碼將在開發(fā)環(huán)境共存一段時間,又需要將兩人的方法定義統(tǒng)一在一個 jar 包內(nèi),部署到倉庫,供開發(fā)環(huán)境的項目 P 使用。

  3. 考慮到上線順序不定,不能隨意將 jar 包升級到某個正式版。


暫時想到可行的辦法:

  • 在本地,大家有自個的環(huán)境。不需要考慮代碼層面的沖突,只需要關(guān)注 jar 包 SNAPSHOT 版本是否沖突。因為 SNAPSHOT 是可變的。當(dāng)前包版本為 1.0.0 時,佳佳打包版本為 1.0.1.jiajia-SNAPSHOT;包包則打包為 1.0.1.baobao-SNAPSHOT。

  • 涉及到聯(lián)調(diào)和實現(xiàn),可直接當(dāng)該 jar 包提供給使用方。因為佳佳的聯(lián)調(diào)方只需關(guān)注 1.0.1.jiajia-SNAPSHOT 中提供的方法 A。

  • 佳佳首先在項目 P 中實現(xiàn)了方法 A ,并將代碼推到開發(fā) dev 分支,引用的 jar 包版本為 1.0.1.jiajia-SNAPSHOT。

  • 包包在項目 P 中引用 1.0.1.jiajia-SNAPSHOT,當(dāng)需要將項目 P 的代碼推到 dev 分支時,發(fā)現(xiàn)沖突。從 jar 包版本得知,佳佳也在同時開發(fā)。

  • 此時,包包在工程 X 中新建解決沖突分支,解決沖突,新打一個包為 1.0.1.conflict-SNAPSHOT,并在項目 P 中引用該包。順利部署到開發(fā)環(huán)境。

  • 涉及到?jīng)_突解決,兩人在工程 X 中定義完新方法后,需要將對應(yīng)的分支推到主倉庫讓對方看到。并使用明顯的分支名稱,方便對方解決沖突。

  • 需要上線時候,假設(shè)包包先上線。拉取工程 X master 分支的代碼,防止佳佳已經(jīng)上線,得知最新版本沒變,則在工程 X 中打包 1.0.1,項目 P 引用 1.0.1 順利上線。并將代碼合并到工程 X 的 master 分支。

  • 佳佳上線時,首先拉取工程 X 的 master 分支,發(fā)現(xiàn)1.0.1被占用,則使用最新版本1.0.2。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.編寫POM Maven項目的核心文件是pom.xml,POM(Project Objcet Model)項目對...
    zlcook閱讀 6,008評論 7 26
  • Jar包沖突是老生常談的問題,幾乎每一個Java程序猿都不可避免地遇到過,并且也都能想到通常的原因一般是同一個Ja...
    sherlockyb閱讀 37,838評論 1 65
  • Jar包沖突的本質(zhì)是什么?Java應(yīng)用程序因某種因素,加載不到正確的類而導(dǎo)致其行為跟預(yù)期不一致。 具體來說可分為兩...
    tracy_668閱讀 810評論 0 4
  • Java項目版本管理規(guī)范 版本命名規(guī)則 Prong Boot / Prong Cloud的版本命名規(guī)范在maven...
    大浪滔滔閱讀 14,130評論 0 11
  • 【幸福女孩 糖糖 二年級 堅持原創(chuàng)分享第647天 2019.06.21 星期五】
    何亞珂閱讀 289評論 0 0

友情鏈接更多精彩內(nèi)容