Windows環(huán)境搭建Maven私有倉(cāng)庫(kù)

Windows環(huán)境搭建Maven私有倉(cāng)庫(kù)

一:Nexus概述

我們?cè)谥vNexus之前,先來(lái)看個(gè)問(wèn)題腥椒,為什么要搭建 Maven 私有倉(cāng)庫(kù)阿宅?不管是做開(kāi)發(fā)還是測(cè)試,我們項(xiàng)目中都會(huì)涉及到一些私有的 jar包笼蛛,何為私有的 jar 包洒放,就是我們自己打包的一個(gè) jar文件,無(wú)法從Maven下載的滨砍,如果這個(gè)項(xiàng)目只有一個(gè)人在使用往湿,那么可以直接使用這個(gè) jar 包妖异,但是如果有多人使用呢,難道要一個(gè)一個(gè) copy 給他們嗎领追,就算 copy 了他膳,在項(xiàng)目中也不見(jiàn)得會(huì)正常使用,代碼中肯定會(huì)報(bào) jar 包缺失绒窑,這種報(bào)錯(cuò)非常常見(jiàn)棕孙。

其次,所有人重復(fù)的從 Maven 倉(cāng)庫(kù)下載 jar 包些膨,浪費(fèi)了大量的外網(wǎng)帶寬蟀俊,如果公司網(wǎng)絡(luò)慢,那么下載耗時(shí)會(huì)非常大傀蓉,那種痛苦估計(jì)只有經(jīng)歷過(guò)的人才會(huì)知道欧漱,影響工作效率和項(xiàng)目進(jìn)度,常用方法就是將這個(gè) jar 包放到私有倉(cāng)庫(kù)葬燎,在 maven 中配置好私有倉(cāng)庫(kù)地址误甚,在 pom.xml 中配置好 jar 包相關(guān)信息,就可以下載到本地了谱净,使用這個(gè) jar了窑邦。那么如何搭建 Maven 私有倉(cāng)庫(kù)呢,我們就要使用 Nexus壕探。

Nexus是一個(gè)強(qiáng)大的maven倉(cāng)庫(kù)管理器,它極大的簡(jiǎn)化了本地內(nèi)部倉(cāng)庫(kù)的維護(hù)和外部倉(cāng)庫(kù)的訪問(wèn)冈钦;是一套開(kāi)箱即用的系統(tǒng)不需要數(shù)據(jù)庫(kù),它使用文件系統(tǒng)加Lucene來(lái)組織數(shù)據(jù);使用ExtJS來(lái)開(kāi)發(fā)界面,利用Restlet來(lái)提供完整的REST APIs,通過(guò)IDEA和Eclipse集成使用李请;支持webDAV與LDAP安全身份認(rèn)證瞧筛;提供了強(qiáng)大的倉(cāng)庫(kù)管理功能,構(gòu)件搜索功能,它基于REST,友好的UI是一個(gè)extjs的REST客戶端,占用較少的內(nèi)存,基于簡(jiǎn)單文件系統(tǒng)而非數(shù)據(jù)庫(kù)。

二:Nexus 的優(yōu)點(diǎn)

1.加速 Maven 構(gòu)建過(guò)程导盅,提高工作效率

2.節(jié)省大量的外網(wǎng)帶寬

3.方便公司內(nèi)部人員使用

三:工作流程

image

四:Nexus 倉(cāng)庫(kù)類型說(shuō)明

hosted:本地存儲(chǔ)较幌。像官方倉(cāng)庫(kù)一樣提供本地私庫(kù)功能 proxy:提供代理其它倉(cāng)庫(kù)的類型 group:組類型,能夠組合多個(gè)倉(cāng)庫(kù)為一個(gè)地址提供服務(wù)

五:Nexus 下載

1.官網(wǎng):https://www.sonatype.com/

image

2.下載地址

Nexus提供了免費(fèi)版本和收費(fèi)版本白翻,如上圖所示乍炉,OSS 為免費(fèi)版本,PRO為收費(fèi)版本滤馍。

點(diǎn)擊Nexus Repository OSS岛琼,點(diǎn)擊 GET REPOSITORY OSS

image

輸入郵箱(隨便輸入),選擇 I don't know巢株,點(diǎn)擊 DOWNLOAD

image

隨意填寫(xiě)相關(guān)數(shù)據(jù)槐瑞,點(diǎn)擊DOWNLOAD

image

根據(jù)你的操作系統(tǒng),選擇下載即可阁苞,這里選擇 WINDOWS

image
注:由于網(wǎng)絡(luò)限制随珠,需要借助梯子才可以正常訪問(wèn) Nexus 官網(wǎng)及軟件下載灭袁,因此,Nexus 安裝包會(huì)放到百度網(wǎng)盤窗看,有需要的小伙伴可以在公眾號(hào)內(nèi)回復(fù)“nexus”獲取

六:安裝

1.將下載好的nexus-3.31.1-01-win64.zip解壓

nexus-3.31.1-01:nexus 安裝目錄

sonatype-work:nexus 數(shù)據(jù)文檔

image

2.nexus-3.31.1-01 目錄說(shuō)明

image

bin 包含nexus的啟動(dòng)腳本和相關(guān)配置 etc jetty茸歧、karaf等配置文件 jre jre環(huán)境 lib java架包庫(kù) public 關(guān)于nexus應(yīng)用在本地跑起來(lái)所需要的資源 system 應(yīng)用所有的插件和組件

3.sonatype-work\nexus3目錄說(shuō)明

image

blobs 創(chuàng)建blob的默認(rèn)路徑,當(dāng)然也可以重新指定 cache 當(dāng)前緩存的karaf包的信息 db OrientDB數(shù)據(jù)庫(kù)的數(shù)據(jù)显沈,用于存儲(chǔ)nexus的元數(shù)據(jù)的數(shù)據(jù)庫(kù) elasticsearch 當(dāng)前配置的Elasticsearch狀態(tài) etc 大概是運(yùn)行時(shí)配置狀態(tài)和關(guān)于資源庫(kù)的自定義的相關(guān)的東西 keystores 自動(dòng)生成的關(guān)于資源庫(kù)的ID主鍵 log 運(yùn)行實(shí)例生成的日志文件软瞎,也有日志文件的壓縮包,貌似是每天都會(huì)生成日志文件拉讯,你可以定期刪除老的日志文件 tmp 用于存儲(chǔ)臨時(shí)文件的目錄

官方詳細(xì)說(shuō)明:https://help.sonatype.com/repomanager3/installation/directories

2.啟動(dòng)方式一

在D:\Program Files\nexus-3.31.1-01-win64\nexus-3.31.1-01\bin目錄下涤浇,在PowerShell窗口輸入 .\nexus.exe /run,Cmd 命令行也可魔慷。

當(dāng)然如果你不想每次都進(jìn)入 bin 目錄下執(zhí)行 .\nexus.exe /run只锭,你需要將 bin 目錄設(shè)置為環(huán)境變量,這樣就可以在隨意路徑下執(zhí)行該命令了院尔。

image
image

啟動(dòng)后瀏覽器輸入:127.0.0.1:8081

image

2.啟動(dòng)方式二

創(chuàng)建并注冊(cè)為 Windows 服務(wù)蜻展,以 Windows 服務(wù)的方式啟動(dòng)和停止:nexus.exe /install <optional-service-name>

image

如果出現(xiàn)以上報(bào)錯(cuò),我們用管理員身份打開(kāi) PowerShell邀摆,再次輸入 nexus.exe /install nexus-service

image

我們打開(kāi) Windows 服務(wù)纵顾,查看是否創(chuàng)建成功,Windows 服務(wù)中存在 nexus-services栋盹,說(shuō)明我們已經(jīng)創(chuàng)建成功施逾,可以設(shè)置啟動(dòng)類型并啟動(dòng)或停止。

image

3.命令行管理服務(wù)

<pre class="md-fences md-end-block md-fences-with-lineno ty-contain-cm modeLoaded" spellcheck="false" lang="bash" cid="n59" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px 0px; margin-bottom: 15px; margin-top: 15px; width: inherit; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; background-position: inherit inherit; background-repeat: inherit inherit;"> nexus.exe /start <可選服務(wù)名稱>
nexus.exe /stop <可選服務(wù)名稱>
nexus.exe /uninstall <可選服務(wù)名稱></pre>

七:Nexus的使用

1.登錄例获,點(diǎn)擊 Sing in汉额,彈出密碼存放文件

image

2.如果你8081端口被占用,那么可以修改端口號(hào)

進(jìn)入D:\Program Files\nexus-3.31.1-01-win64\nexus-3.31.1-01\etc目錄榨汤,修改nexus-default.properties文件中的application-port值即可

<pre class="md-fences md-end-block md-fences-with-lineno ty-contain-cm modeLoaded" spellcheck="false" lang="properties" cid="n65" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px 0px; margin-bottom: 15px; margin-top: 15px; width: inherit; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; background-position: inherit inherit; background-repeat: inherit inherit;"> ## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties

Jetty section

application-port=8081
application-host=0.0.0.0
nexus-args={jetty.etc}/jetty.xml,{jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/

Nexus section

nexus-edition=nexus-pro-edition
nexus-features=
nexus-pro-feature

nexus.hazelcast.discovery.isEnabled=true</pre>

3.倉(cāng)庫(kù)說(shuō)明

image

3.上傳 jar包到 nexus

image

1.登錄后點(diǎn)擊 Upload,點(diǎn)擊 maven-releases

2.選擇文件闷愤,填寫(xiě) Group ID,Artiface ID,Version

3.點(diǎn)擊 Upload

image

3.查看已上傳的 jar

image

八:在項(xiàng)目中的使用

1.下載 Maven,在公眾號(hào)內(nèi)回復(fù) maven 下載

2.下載解壓后修改/config/settings.xml文件

<localRepository>D:\Program Files\apache-maven-3.8.1\mavenrepository</localRepository>

<mirrors> <mirror> <id>nexus</id> <name>internal nexus repository</name> <url>http://127.0.0.1:8081/repository/maven-public/</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors>

3.idea 設(shè)置

image

4.pom.xml 配置依賴jar 包件余,以 testng.jar 為例

<dependency> <groupId>org.example</groupId> <artifactId>xml-transformation-html</artifactId> <version>1.0</version> </dependency>

5.執(zhí)行

點(diǎn)擊 idea 最右側(cè) Maven,點(diǎn)擊 Dowload Sources and Documentation 或者直接點(diǎn)擊刷新按鈕,可以看到已經(jīng)從 127.0.0.1 開(kāi)始下載依賴包了

image
image-20210710152149878
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遭居,一起剝皮案震驚了整個(gè)濱河市啼器,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌俱萍,老刑警劉巖端壳,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異枪蘑,居然都是意外死亡损谦,警方通過(guò)查閱死者的電腦和手機(jī)岖免,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)照捡,“玉大人颅湘,你說(shuō)我怎么就攤上這事±蹙” “怎么了闯参?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)悲立。 經(jīng)常有香客問(wèn)我鹿寨,道長(zhǎng),這世上最難降的妖魔是什么薪夕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任脚草,我火速辦了婚禮,結(jié)果婚禮上原献,老公的妹妹穿的比我還像新娘馏慨。我一直安慰自己,他們只是感情好嚼贡,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布熏纯。 她就那樣靜靜地躺著,像睡著了一般粤策。 火紅的嫁衣襯著肌膚如雪樟澜。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天叮盘,我揣著相機(jī)與錄音秩贰,去河邊找鬼。 笑死柔吼,一個(gè)胖子當(dāng)著我的面吹牛毒费,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播愈魏,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼觅玻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了培漏?” 一聲冷哼從身側(cè)響起溪厘,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牌柄,沒(méi)想到半個(gè)月后畸悬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡珊佣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年蹋宦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了披粟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冷冗,死狀恐怖守屉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贾惦,我是刑警寧澤胸梆,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站须板,受9級(jí)特大地震影響碰镜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜习瑰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一绪颖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧甜奄,春花似錦柠横、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至烟阐,卻和暖如春搬俊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蜒茄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工唉擂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人檀葛。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓玩祟,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親屿聋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子空扎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容