使用私服——Nexus

Nexus的安裝和啟動(dòng)

Nexus擁有全面的權(quán)限控制功能黍聂。默認(rèn)的Nexus訪問為匿名豆拨,僅包含一些最基本的權(quán)限痹束。我們以管理員方式登錄张症。

倉庫與倉庫組

內(nèi)置的倉庫

內(nèi)置的倉庫.png

倉庫屬性:
1.倉庫類型(Type):

  • group 倉庫組
  • hosted 宿主
  • proxy 代理
  • virtual 虛擬

2.倉庫格式(Format):

  • maven2
  • maven1

3.策略(Policy):

  • Realease 發(fā)布版本
  • Snapshot 快照版本

最后兩列為倉庫的狀態(tài)和路徑仓技。

倉庫:

  • Central 該倉庫代理Maven中央倉庫,策略為Release俗他,只會(huì)下載和緩存中央倉庫中的發(fā)布版本構(gòu)件脖捻。
  • Releases 策略為Release的宿主類型倉庫,用來部署內(nèi)部的發(fā)布版本構(gòu)件兆衅。
  • Snapshots 策略為Snapshot的宿主類型倉庫地沮,用來部署組織內(nèi)部的快照版本構(gòu)件。
  • 3rd party 策略為Release的宿主類型倉庫羡亩,用來部署無法從公共倉庫獲得的第三方發(fā)布版本構(gòu)件摩疑。
  • Apache Snapshots 策略為Snapshot的代理倉庫,用來代理Apache Maven倉庫的快照版本構(gòu)件畏铆。
  • Public Repositories 該倉庫將所有策略為Release的倉庫聚合雷袋,通過一致的地址提供服務(wù)。

Central倉庫會(huì)被用來代理中央倉庫的內(nèi)容及志,并在私服上緩存下來。但是當(dāng)Maven項(xiàng)目X依賴于某個(gè)Google Code的項(xiàng)目寨腔,其構(gòu)件在中央倉庫不存在速侈,那我們需要添加Google Code代理倉庫。如果X還依賴于Oracle的JDBC驅(qū)動(dòng)迫卢,由于版權(quán)因素倚搬,無法從公共倉庫獲得,公司管理員將其部署到3rd party宿主倉庫中乾蛤,供X使用每界。X的快照版本成功后,X構(gòu)件會(huì)被部署到Snapshots宿主倉庫中家卖,供其他項(xiàng)目使用眨层。X的正式版本發(fā)布之后,其構(gòu)件會(huì)被部署到Releases宿主倉庫上荡。由于X用到了很多倉庫趴樱,為每個(gè)倉庫聲明Maven配置很麻煩馒闷,可以直接使用倉庫組Public Repositories∪鳎可以根據(jù)需要進(jìn)行配置纳账,如下圖:


Public Repositories配置.png

倉庫分類

各種倉庫類型.png

1.Maven可以直接從宿主倉庫下載構(gòu)件
2.Maven從代理倉庫下載構(gòu)件,代理倉庫間接地從遠(yuǎn)程倉庫下載和緩存構(gòu)件捺疼。
3.Maven可以通過倉庫組下載構(gòu)件疏虫,但是倉庫組沒有實(shí)際內(nèi)容(虛線表示),它會(huì)轉(zhuǎn)向其他倉庫獲取實(shí)際構(gòu)件的內(nèi)容啤呼。

創(chuàng)建宿主倉庫

點(diǎn)擊Hosted Repo.png

可以看到配置界面:

創(chuàng)建Nexus宿主倉庫.png
  • Provider :一般選擇默認(rèn)的Maven2 Repository
  • Repository Policy: 快照還是發(fā)布策略
  • Default Local Storage Location:表示該倉庫的默認(rèn)存儲(chǔ)目錄卧秘,若為空,則會(huì)基于sonatype-work媳友,生成一個(gè)目錄斯议,sonatype-work/nexus/storage/repository-id/
sonatype-work.png
  • Override Local Storage Location:可以用來配置自定義的倉庫目錄位置
  • Deployment Policy:一般是選擇允許部署,還有種是Read Only醇锚,只讀哼御。
  • Allow File Browsing:是否允許瀏覽倉庫內(nèi)容『富#可以以樹形結(jié)構(gòu)瀏覽倉庫存儲(chǔ)文件的內(nèi)容恋昼。
Browse Storage.png
  • Include in Search:是否對(duì)倉庫進(jìn)行索引并提供搜索。
  • Publish URL:是否通過URL提供服務(wù)赶促。如果為false液肌,訪問該倉庫地址時(shí),會(huì)得到HTTP 404 Not Found錯(cuò)誤鸥滨。
  • Not Found Cache TTL:當(dāng)一個(gè)文件沒有被找到嗦哆,緩存這一不存在信息的時(shí)間,默認(rèn)值為1440分鐘婿滓,在之后的1440分鐘之后再訪問該文件老速,將直接返回不存在,而不會(huì)查找文件系統(tǒng)凸主。

創(chuàng)建代理倉庫

Proxy Repo.png

  • 最重要的是遠(yuǎn)程倉庫的地址Remote Storage Location橘券,必須是有效的值。
  • Download Remote Indexes 是否下載遠(yuǎn)程倉庫的索引卿吐。下載索引旁舰,即使沒有緩存遠(yuǎn)程倉庫的構(gòu)件,還是可以在本地搜索和瀏覽構(gòu)件的基本信息嗡官。
  • Checksum Policy:配置校驗(yàn)和出錯(cuò)時(shí)的策略箭窜。
  • Authentication配置,為可選項(xiàng)衍腥。當(dāng)遠(yuǎn)程倉庫需要認(rèn)證的時(shí)候绽快,需要做配置芥丧。


    Authentication.png

可選HTTP Request Settings,配置Nexus訪問遠(yuǎn)程倉庫時(shí)HTTP請求的參數(shù):

HTTP Request Settings.png

創(chuàng)建倉庫組

group Repo.png

Ordered Group Repo包含的倉庫的順序決定了遍歷倉庫的數(shù)序坊罢,將常用的可以放在前面续担。


索引與構(gòu)件搜索

為了可以搜索Maven中央倉庫,將倉庫Central的Download Remote Indexes值改為true


Central.png

修改后活孩,我們可以從左側(cè)導(dǎo)航欄Scheduled Tasks進(jìn)入任務(wù)列表


導(dǎo)航欄.png
Scheduled Tasks.png

下載index過程中物遇,Status為RUNNING,等下載完畢后憾儒,該任務(wù)就會(huì)消失询兴。我們就可以在Nexus中快速搜索構(gòu)件了~

  • GAV搜索(GAV Search):通過設(shè)置GroupId、ArtifactId起趾、Version信息進(jìn)行針對(duì)性搜索诗舰。
  • 類名搜索(Classname Search):允許用戶搜索包含某個(gè)Java類的構(gòu)件
  • 校驗(yàn)和搜索(Checksum Search): 允許直接使用構(gòu)件的校驗(yàn)和搜所該構(gòu)件。


    search.png

有了中央倉庫的索引训裆,不僅能夠搜索構(gòu)件眶根,還能夠直接瀏覽中央倉庫的內(nèi)容。即索引瀏覽功能边琉。


Browse Remote.png

當(dāng)然我們也可以為宿主倉庫和代理倉庫創(chuàng)建索引


建立索引.png

配置Maven從私服Nexus上下載構(gòu)件

為項(xiàng)目POM添加上Nexus私服上的Public倉庫信息:

<!-- Maven倉庫 -->
<repositories>
    <repository>
        <id>nexus</id>
        <name>Nexus</name>
        <url>http://localhost:8081/nexus/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>nexus</id>
        <name>Nexus</name>
        <url>http://localhost:8081/nexus/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

這樣的配置只對(duì)當(dāng)前Maven項(xiàng)目有效属百。希望通過一次配置就能讓本機(jī)所有的Maven項(xiàng)目都使用自己的Maven私服。Maven提供了Profile機(jī)制变姨,能讓用戶將倉庫配置放到setting.xml的Profile中

<profiles>
   <profile>
     <id>nexus</id>
     <repositories>
       <repository>
         <id>nexus</id>
         <name>Nexus</name>
         <url>http://localhost:8081/nexus/content/groups/public/</url>
         <releases>
           <enabled>true</enabled>
         </releases>
         <snapshots>
           <enabled>true</enabled>
         </snapshots>
       </repository>
     </repositories>
     <pluginRepositories>
       <pluginRepository>
         <id>nexus</id>
         <name>Nexus</name>
         <url>http://localhost:8081/nexus/content/groups/public/</url>
         <releases>
           <enabled>true</enabled>
         </releases>
         <snapshots>
           <enabled>true</enabled>
         </snapshots>
       </pluginRepository>
     </pluginRepositories>
   </profile>
</profiles>

<activeProfiles>
  <activeProfile>nexus</activeProfile>
</activeProfiles>

可以通過配置鏡像族扰,使所有的請求都只通過私服。

<mirror>
     <id>nexus</id>
     <url>http://localhost:8081/nexus/content/groups/public/</url>      
     <mirrorOf>*</mirrorOf>      
</mirror>  

<profiles>
   <profile>
     <id>nexus</id>
     <repositories>
       <repository>
         <id>central</id>
         <url>http://central</url>
         <releases>
           <enabled>true</enabled>
         </releases>
         <snapshots>
           <enabled>true</enabled>
         </snapshots>
       </repository>
     </repositories>
     <pluginRepositories>
       <pluginRepository>
         <id>central</id>
         <url>http://central</url>
         <releases>
           <enabled>true</enabled>
         </releases>
         <snapshots>
           <enabled>true</enabled>
         </snapshots>
       </pluginRepository>
     </pluginRepositories>
   </profile>
</profiles>

<activeProfiles>
  <activeProfile>nexus</activeProfile>
</activeProfiles>

需要注意的是定欧,這里倉庫和插件倉庫的id都為central渔呵,也就是說覆蓋了超級(jí)POM中央倉庫的配置,它們的url已無關(guān)緊要砍鸠,因?yàn)樗姓埱蠖紩?huì)通過鏡像訪問私服扩氢。但是依然配置倉庫和插件倉庫主要是為了開啟對(duì)快照版本下載的支持。Maven需要下載發(fā)布版本/快照版本時(shí)睦番,首先檢查central类茂,看該類型是否支持耍属,得到正面回答后托嚣,根據(jù)鏡像匹配規(guī)則轉(zhuǎn)而訪問私服倉庫。


部署構(gòu)件至Nexus

Nexus倉庫對(duì)于匿名用戶是只讀的厚骗。為了能夠部署構(gòu)件示启,還需要在settings.xml中配置認(rèn)證信息。

<servers>
<server>
  <id>releases</id>
   <username>admin</username>
   <password>xxxxxx</password>
</server>
<server>
  <id>snapshots</id>
   <username>admin</username>
   <password>xxxxxx</password>
</server>

當(dāng)然我們也可以手動(dòng)上傳構(gòu)件至Nexus领舰,例如上傳第三方構(gòu)件:

Artifact Upload.png

Nexus權(quán)限管理

Nexus是基于權(quán)限做訪問控制的夫嗓。
參考《Maven實(shí)戰(zhàn)》9.7

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末迟螺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子舍咖,更是在濱河造成了極大的恐慌矩父,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件排霉,死亡現(xiàn)場離奇詭異窍株,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)攻柠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門球订,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瑰钮,你說我怎么就攤上這事冒滩。” “怎么了浪谴?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵开睡,是天一觀的道長。 經(jīng)常有香客問我较店,道長士八,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任梁呈,我火速辦了婚禮婚度,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘官卡。我一直安慰自己蝗茁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布寻咒。 她就那樣靜靜地躺著哮翘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪毛秘。 梳的紋絲不亂的頭發(fā)上饭寺,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音叫挟,去河邊找鬼艰匙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛抹恳,可吹牛的內(nèi)容都是我干的员凝。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼奋献,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叹誉,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宣吱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瞳别,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凌节,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洒试。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倍奢。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖垒棋,靈堂內(nèi)的尸體忽然破棺而出卒煞,到底是詐尸還是另有隱情,我是刑警寧澤叼架,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布畔裕,位于F島的核電站,受9級(jí)特大地震影響乖订,放射性物質(zhì)發(fā)生泄漏扮饶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一乍构、第九天 我趴在偏房一處隱蔽的房頂上張望甜无。 院中可真熱鬧,春花似錦哥遮、人聲如沸岂丘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奥帘。三九已至,卻和暖如春仪召,著一層夾襖步出監(jiān)牢的瞬間寨蹋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國打工扔茅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留已旧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓咖摹,卻偏偏與公主長得像评姨,于是被迫代替她去往敵國和親难述。 傳聞我的和親對(duì)象是個(gè)殘疾皇子萤晴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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

  • 首先私服是一種衍生出來的特殊的Maven遠(yuǎn)程倉庫吐句,構(gòu)建私服的好處請看3.5私服 可以幫助大家建立私服的倉庫管理軟件...
    zlcook閱讀 10,535評(píng)論 0 32
  • |-1-更新內(nèi)容[6.從倉庫解析依賴的機(jī)制(重要)] 1Maven倉庫作用 倉庫用來存儲(chǔ)所有項(xiàng)目使用到構(gòu)件,在ma...
    zlcook閱讀 6,030評(píng)論 0 25
  • 目前在看nexus私服章節(jié)的知識(shí)時(shí)需要用到倉庫與鏡像的知識(shí),正好通過簡書把倉庫和鏡像章節(jié)的筆記整理一下 倉庫 ma...
    小煉君閱讀 1,274評(píng)論 0 48
  • 一眼月光屯断,半臉星光浴火重生文虏,全部都化為灰燼。滿城霧色半城紗殖演,一片落葉劃過我的眼眸氧秘,瞬間點(diǎn)燃了我的思念。 回頭輕輕的...
    南山涌泉閱讀 1,236評(píng)論 5 15
  • 印象深刻的部分趴久、與現(xiàn)實(shí)的聯(lián)系 1丸相、刺激與回應(yīng)之間存在一段距離,成長和幸福的關(guān)鍵就在于我們?nèi)绾卫眠@段距離彼棍。 我們逐...
    一壇子泡菜閱讀 1,314評(píng)論 0 0