sonatype nexus簡介(轉) sonatype nexus簡介(轉)

sonatype nexus簡介(轉)

     Nexus是谷歌手機的一個牌子,我們要介紹的不是Nexus,而是Sonatype Nexus。它是Sonatype公司的一個產品,叫Nexus,它是Maven的私服。事實上有三種專門的Maven倉庫管理軟件可以幫助我們創建私服,有Apache的Archiva;JFrog的Artifactory和Sonatype的Nexus。其中Archiva是開源的,Artifactory和Nexus的核心也是開源的。這裏我們重點介紹Sonatype公司的Nexus。

 

     看一下百度百科對私服的介紹:

     我不玩遊戲,對遊戲的私服也不是很瞭解,我們這裏所說的私服跟遊戲的私服還不一樣。我把它解釋爲私人服務器。Maven的內容上篇博客我們已經介紹了,【項目管理】項目管理工具Maven,而爲什麼要在Maven中用私服呢?呵呵,這是個問題,我們下面就好好介紹一下Sonatype Nexus,Maven的私人服務器。

 

     其實要說Nexus,它並不是Maven的核心內容,而是兩個相互獨立的東西。但是Nexus的產生確實是跟Maven有淵源的。說是私服,其實Nexus就是Maven的一個遠程倉庫。上篇博客我們介紹了Maven的本地倉庫和中央倉庫,那麼Nexus是什麼樣的倉庫呢?

     其實這個是之前困擾我的一個問題,我理解了本地倉庫了中央倉庫,知道一個項目需要插件的時候會先去本地倉庫找,如果本地倉庫沒有就會去中央倉庫找,找到後下載到本地倉庫中再使用。但是Nexus的出現,讓我傻傻搞不清楚本地倉庫和Nexus的區別。本地倉庫是保存從中央倉庫(遠程倉庫)下載下來的插件;Nexus也是保存從中央倉庫下載下來的插件,那麼從中央倉庫下載下來的插件是選擇保存在本地倉庫?還是Nexus?還是連個地方各保存一份呢?帶着這樣的疑問,我開始進一步的瞭解Nexus。

     深入瞭解後我才發現,原來Nexus也是遠程倉庫的一種,它是架設在局域網內的倉庫服務。這裏我稱之爲遠程倉庫,是爲了跟中央倉庫區分開來,因爲原來的理解有問題,中央倉庫是Sonatype公司出資維護的,我們把它想象成是一個無比巨大,物產豐富的大庫,而這個庫置於最外層;我們所說的Nexus置於中央倉庫和本地倉庫之間,Nexus之所以稱爲是一種特殊的遠程倉庫,是爲了節省寬帶和時間,在局域網內架設的一個私有的倉庫服務器,它代理廣域網上的所有的中央倉庫,供局域網內的Maven用戶使用。

 

     打個比方,就好比外部所有的“中央倉庫”是一個大的油庫,裏面有特別多的資源。自己家有個油壺,負責裝油拿在家炒菜,家裏的這個小油壺就是“本地倉庫”。但是用小油壺去大油庫裏盛油,中間要走很多路,花費很多錢(這裏指佔用的網絡流量和時間),所以想着在中間建立一個小的中轉站——商店,把油放到油桶裏(指Nexus)。這樣,外部的所有油庫都可以把油放到商店的油桶中,居民根據需要可以拿着油壺直接去商店打油了。這樣一來,你明白Nexus的作用了麼?

 

     所以,當項目中需要某些插件時,它會先去本地倉庫中尋找,如果沒有,從私服Nexus請求,如果私服Nexus不存在該插件,則從外部的中央倉庫中下載,緩存到Nexus上之後,再下載到本地倉庫中供項目使用。除此之外,一些無法在中央倉庫下載下來的插件也能從本地上傳到私服Nexus中供大家使用。

 

     一些關於Nexus的詳細配置以及細的知識點,詳情可以參考我的這篇博客:maven+nexus環境搭建。作爲一個Nexus的入門,這篇博客就介紹到這裏,不過作爲Maven配合使用的Nexus,它已經成爲當今最流行的Maven倉庫管理軟件。有什麼問題歡迎在下方留言!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章