Maven私服畢業(yè)攻略
為什么要使用Maven私服
Maven是筆者在開發(fā)中用的最多的倉庫, 已經(jīng)不記得和pom文件做過多少次戰(zhàn)斗了
公開倉庫里有很多優(yōu)秀的項(xiàng)目, 但難免會有較為特殊的需求, 它除了需求過分之外, 還有很多module, 甚至同事的項(xiàng)目都進(jìn)行了引用
傳統(tǒng)的jar包方式顯示是落后且不優(yōu)雅的
面對這種情況, 搭建自己或公司的Maven私服顯然是最佳解決方案
我知道在網(wǎng)上有許許多多類似的教程和攻略, 但筆者認(rèn)為它們或多或少都缺少了一些系統(tǒng)性的指引, 亦或是缺少關(guān)鍵步驟的講解, 自己死磕了接近一整天也拜它們所賜
故, 在這里對如何搭建Maven私服進(jìn)行一次最為全面和系統(tǒng)的整理與解讀
學(xué)習(xí)更多,請點(diǎn)擊:https://www.bilibili.com/video/BV1dy4y1W7Db
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1Qb4y1D75J
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1qo4y1f7Uw
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1s64y1i77s
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1yy4y147TY
選擇搭建方式
總共有三種比較合適的Maven私服搭建方式:
Nexus
Github倉庫
Github Packages
三種方式各有特點(diǎn), 需要各位根據(jù)自己的實(shí)際情況進(jìn)行選擇, 我來簡單列舉一下它們的適用的場景:
Nexus: 適合公司規(guī)模的私服搭建, 教程資源豐富, 管理容易, 但對硬件性能要求較高
Github倉庫: 個人和公司均適用, 無需搭建, 但項(xiàng)目打包發(fā)布需要配置, 且國內(nèi)訪問和速度堪憂
Github Packages: 相對于Github倉庫更加便捷, 項(xiàng)目打包發(fā)布也簡便, 但在引入時需要Github認(rèn)證, 適合使用Github作為開發(fā)庫的團(tuán)隊(duì)
還是那句話, 沒有最好的, 只有最合適的
選擇好合適的方式后, 來開始我們的表演吧
學(xué)習(xí)更多,請點(diǎn)擊:https://www.bilibili.com/video/BV1dy4y1W7Db
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1Qb4y1D75J
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1qo4y1f7Uw
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1s64y1i77s
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1yy4y147TY
開始搭建!
Nexus
Nexus網(wǎng)上的教程有太多, 貼一篇我認(rèn)為不錯的
需要注意的是, 新版本的Nexus要想啟動必須擁有2G以上內(nèi)存, 勸退了一眾小型云服務(wù)器
Github Packages
為什么先說這個呢?因?yàn)槲业闹攸c(diǎn)在Github倉庫
準(zhǔn)備工作
在使用Github Packages之前, 我們需要進(jìn)行如下三步準(zhǔn)備工作:
擁有一個Github賬號
生成一個用于訪問的token
創(chuàng)建一個用于保存的倉庫, 我習(xí)慣命名為: maven-repo
上面的步驟均可在瀏覽器進(jìn)行, 且網(wǎng)上教程很多, 不再贅述
修改Maven配置
我們的Maven一般有兩種情況:
本機(jī)安裝的Maven: 去修改${MavenHome}/conf/settings.xml
idea自帶的Maven: 創(chuàng)建一個settins.xml, 在idea的Maven設(shè)置中進(jìn)行覆蓋
修改<servers>和<profiles>標(biāo)簽
學(xué)習(xí)更多,請點(diǎn)擊:https://www.bilibili.com/video/BV1dy4y1W7Db
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1Qb4y1D75J
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1qo4y1f7Uw
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1s64y1i77s
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1yy4y147TY

修改pom文件
在項(xiàng)目的pom文件中, 設(shè)置發(fā)布參數(shù)

再次強(qiáng)調(diào), Github Packages的私服, 需要在maven中配置Github的token認(rèn)證才能使用
如何使用
如果要讓其它人使用Github Packages中的依賴, 需要對方擁有Github賬號和認(rèn)證, 并修改Maven配置
然后在pom中直接引入即可
pom引入可參考Github倉庫中的方法
學(xué)習(xí)更多,請點(diǎn)擊:https://www.bilibili.com/video/BV1dy4y1W7Db
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1Qb4y1D75J
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1qo4y1f7Uw
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1s64y1i77s
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1yy4y147TY
Github倉庫
重點(diǎn)來了, 這是筆者最后選擇的方式
準(zhǔn)備工作
擁有一個Github賬號
生成一個用于訪問的token
修改Maven配置
和Github Packages相同, 我們需要修改Maven的配置(用于發(fā)布):

這里會有教程使用Github用戶名和密碼, 經(jīng)筆者實(shí)際測試, 在使用密碼時會報404的錯誤, 所以老老實(shí)實(shí)用token吧
修改pom文件
我們總共要做兩件事:
將項(xiàng)目發(fā)布到本地Maven倉庫
使用site-maven-plugin自動將倉庫同步到Github
選擇一個本地路徑作為Maven倉庫, 要注意加"file:"哦

完成上面的配置后, 執(zhí)行maven的deploy命令, 會在本地文件路徑中生成文件, 并同步上傳到Github倉庫
如何使用
要想讓其它人使用你的依賴, 我們需要完成:
1.配置私服地址 2.在pom中引入依賴
先配置私服地址, 注意這里和倉庫的地址不同, 要在github前增加raw

國內(nèi)網(wǎng)友的坑
國內(nèi)的小伙伴們在引入依賴時大概率會遇到無法訪問raw.github的問題, 還好我們有g(shù)itee, 可以采用曲線拯救的方式
學(xué)習(xí)更多,請點(diǎn)擊:https://www.bilibili.com/video/BV1dy4y1W7Db
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1Qb4y1D75J
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1qo4y1f7Uw
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1s64y1i77s
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1yy4y147TY
使用Gitee作為代理需要如下步驟:
擁有一個Gitee賬號
在Gitee中導(dǎo)入Github倉庫
定時將Github倉庫同步到Gitee
前兩步驟不再贅述, 第三步推薦使用Github Actions, 可以參考這位大神的文章
接下來我們只需要修改下私有倉庫的地址即可:

學(xué)習(xí)更多,請點(diǎn)擊:https://www.bilibili.com/video/BV1dy4y1W7Db
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1Qb4y1D75J
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1qo4y1f7Uw
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1s64y1i77s
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?https://www.bilibili.com/video/BV1yy4y147TY
作者:Houtaroy
鏈接:https://juejin.cn/post/6953756793331777543
來源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。