基于nexus3 的maven私服配置

[TOC]

nexus3 環(huán)境配置

關(guān)于nexus私有化部署與安裝,我在上一篇已經(jīng)詳細的介紹了,不懂得可以參考《centos7配置nexus3(docker)服務(wù)器》

maven nexus私服配置與應(yīng)用

引言(balabala)

nexus 作為一款優(yōu)秀的倉庫管理工具,不僅支持maven、docker、npm、apt等多種倉庫的配置。它支持hosted\procxy\group三種模式提供存儲管理,nexus3 最新的還新增了store隔離存儲功能,通過UI創(chuàng)建不同的store為repo指定不同的存儲空間,達到物理隔離。
java后端開發(fā)人員,對于maven應(yīng)該不會陌生,對于一些優(yōu)秀的jar,我們都可以在maven倉庫當(dāng)中找到,同時maven還提供各類插件進行項目級的編譯、打包等工作。通過maven很大程度解決了我們對于包管理的問題。無論是使用外部庫還是內(nèi)部發(fā)布的jar包管理,基于nexus的maven私服為我們提供了這中管理功能。

  • 代理倉庫,可以配置代理maven鏡像,公司內(nèi)部統(tǒng)一從私服拉取(配置代理的活讓運維去干吧^-^,關(guān)鍵是拉過一次的包,在服務(wù)端是有緩存的,所以二次加載速度真的是飛快^-^)
  • hosted倉庫,按模塊編程方式,通過架構(gòu)師的設(shè)計,將功能隔離后獨立開發(fā)測試,到驗收階段,交付產(chǎn)物我們都可以通過maven的deploy進行產(chǎn)物的上傳與管理,項目組內(nèi)需要引用的小伙伴,想引用公共庫一樣來引用我們自己上傳的包,再也不用煩惱私有包管理版本核對啦(用了都說好^-^)。
  • group倉庫,看了proxy 倉庫的同學(xué),肯定有疑問啦,maven各類公開倉庫還是很多的,再加上一個hosted的 releases與snapshots,難道每次拉包,都要去切換嗎? no no no, group 就是解決該問題的。通過穿梭框配置方式,打包你需要的倉庫,統(tǒng)一配置。

nexus3 maven常用代理倉庫配置

  • maven cent

maven中心倉庫,速度不怎么樣,主要是全,所以建議代理一個
地址: https://repo1.maven.org/maven2/
(nexus3 缺省給創(chuàng)建好了, 貼心 +1)

  • aliyun

這個就是國內(nèi)最受歡迎的鏡像啦,不僅全而且速度非???,
地址: https://maven.aliyun.com/repository/public
阿里良心,點贊 +1

  • spring

spring 有兩個庫,連接速度沒怎么測過,大多庫的拉取都有優(yōu)先走ali,估計速度應(yīng)該會很感人,不過作為補充還是貼上來,對于最新的一些庫,該倉庫還是快一些的
地址(releases): https://repo.spring.io/milestone
地址(snapshots): https://repo.spring.io/snapshot

創(chuàng)建方法

創(chuàng)建倉庫

選擇proxy倉庫

填寫鏡像地址

選擇存儲分組

Ps. 這里缺省只有一個default,其它的都是我自己通過store管理創(chuàng)建,他的作用其實就是隔離存儲,nexus3新增的,感覺很實用。有一次遷移私服,光maven就有十幾個G。

nexus3 私用releases與snapshots倉庫配置,構(gòu)建公司級倉庫

配置hosted倉庫要比配置proxy簡單。上述步驟一樣,少了配置代理進行地址的填寫一項。
有一點要注意的是,在deploymentPolicy一項,請選擇allow redeploy(缺省是 disabled)
nexus3 缺省給你配置了maven-releases和maven-snapshots連個hosted倉庫 (貼心+2^-^)

配置group 倉庫

配置group倉庫就更簡單啦,點擊創(chuàng)建->選擇group->取個名字,拉到最下面,讓后將你要整合的repo移到右側(cè)即可

本地maven配置

玩過maven的都知道,maven的配置是通過settings.xml進行配置的。這里我們需要配置的東西不多,就mirrors和servers。配置mirrors是為了讓本地maven從私服來拉取資源;配置servers主要是用來對本地的包進行deploy管理。

  • settings.xml的位置

無論是windows還是unix類系統(tǒng),你如果是缺省安裝,他基本都在你當(dāng)時安裝的用戶配置下,一個隱藏文件.m2下。當(dāng)然你也可能是是自己配置的環(huán)境變量,獲取配置文件應(yīng)該在安裝目錄 ./conf/seetings.xml內(nèi)

  • mirrors
<mirrors>

    <mirror>
        <id>releases</id>
        <url>這里填寫你的group倉庫地址(不知道的打開nexus,點擊repo進去就有url屬性,拷貝過來)</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>
  • servers
<!-- 這里特別說明一下,servers配置的ID很關(guān)鍵,這個與你項目里面的distrubtionManagement下配置的倉庫ID一致,否則會報unauth錯誤的 -->
<servers>
<server>
        <id>releases</id>
        <username>你的用戶名</username>
        <password>你的密碼</password>
      </server>
      <server>
        <id>nexus-releases</id>
        <username>你的用戶名</username>
        <password>你的密碼</password>
      </server>
      <server>
        <id>nexus-snapshots</id>
        <username>你的用戶名</username>
        <password>你的密碼</password>
      </server>
  </servers>

本地module/project 打包部署配置

在項目級maven管理中,將本地編譯成果部署到私服上去,需要配置distributionManagement, 其實這個配置你在舊nexus里面也可以找到,nexus3沒有找到,大家可以參考一下我的,我用Xxx:xxx屏蔽了我的IP和端口,大家參照自己設(shè)置的hosted的releases和snapshots來配置就好啦。

<distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>localRelease</name>
            <url>http://xxx:xxx/repository/maven-snapshots/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>localSnapshot</name>
            <url>http://xxx:xxx/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

關(guān)于權(quán)限配置的問題

如果碰到授權(quán)問題,檢查一下你的distrubutionManagement內(nèi)的repo的id與你當(dāng)前有效settings.xml(一定要確定有效的,我自己配置了多套環(huán)境,IDEA可以覆蓋加載,你可通過指定setting.xml方式來確認(rèn))內(nèi)配置的id是否一致。主要是這個原因?qū)е碌模?/p>

使用

通過 mvn install 命令,通過控制臺,你可以非常清晰的看到它從配置的mirrors拉取依賴包
通過 deploy發(fā)布本地包時,會進行嚴(yán)格的權(quán)限校驗,必須配置 distributionManegement.同時通過版本號自動確認(rèn)部署至 releases或snapshots。當(dāng)然,你也可以通過 mvn releases:prepare 等命令來實現(xiàn)relesase的發(fā)布

最后編輯于
?著作權(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)容

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