Maven - 遠程倉庫Nexus(私服)


我們在使用maven的時候,對於項目所依賴的jar包,maven默認會在中央倉庫下載jar包,到本地的磁盤目錄(如果沒有配置則是用戶目錄下/.m2/repository文件夾下)。如果公司內部搭了一個maven私服的話,開發人員將倉庫地址指向內網倉庫地址,需要的jar包可直接在私服取,下載速度比遠程要快,如果本地倉庫沒有則自動從遠程下載並保存在本地。本文使用nexus搭建一個私服。

一、Nexus下載安裝

1)下載Nexus 👈 - 下載最新版本,這里使用nexus-3.14.0-04

2)Nexus安裝 - 解壓縮到本地即可

3)修改配置 - Nexus安裝目錄下 nexus-3.14.0-04 / etc / nexus-default.properties 配置表中可以修改以下屬性:

application-host: Nexus服務監聽的主機
application-port: Nexus服務監聽的端口
nexus-context-path: Nexus服務的上下文路徑

- 這里我保持默認設置

4)Nexus服務啟動

以管理員身份運行cmd -> 進入到nexus安裝目錄../nexus-3.14.0-04/bin目錄下
● nexus.exe/install:安裝nexus服務
● nexus.exe/start:啟動nexus服務
● nexus.exe/stop:停止nexus服務

- 安裝完成之后,在windows服務里邊將看到如下圖所示:

5)測試nexus是否安裝成功

① 啟動服務后,根據 nexus-default.properties 的配置進行登錄,如果沒有修改,可以在瀏覽器中輸入http://localhost:8081來登錄
② 默認用戶名:admin,密碼:admin123

nexus可以正常訪問和登錄,這就說明nexus已經安裝成功。

二、使用Nexus(私服)

1)私服工作原理

配置Nexus之前,需要先了解一下私服的工作原理,如下圖:

找依賴包的流程: 首先在本地倉庫中找,如果沒命中,那么就找遠程私服;遠程私服的查找規則同樣是先找host屬性的私有庫,然后再去找proxy屬性的遠程倉庫;可以配置多個proxy;

2)Nexus倉庫類型介紹

默認安裝有以下這幾個倉庫,在控制台也可以修改遠程倉庫的地址,第三方倉庫等

● hosted(宿主倉庫庫):存放本公司開發的jar包(正式版本、測試版本)
● proxy(代理倉庫):代理中央倉庫、Apache下測試版本的jar包
● group(組倉庫):使用時連接組倉庫,包含Hosted(宿主倉庫)和Proxy(代理倉庫)

3)上傳jar包到遠程倉庫

對於中央倉庫沒有的jar包,需要我們自己將jar包發布到私服中去,其中jar包主要分為兩類:
② 本地自己開發供給項目組其余同事使用,這種直接配置項目的pom文件和maven的setting文件,之后deploy發布即可發布到
① 第三方jar包,可以直接使用web頁面上傳並設置對應GAV即可

1.在Maven的 setting.xml 中配置nexus訪問權限

<servers>
    <!-- 配置nexus權限 -->
    <server>
        <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>

2.在項目的pom.xml中配置nexus倉庫位置

<!--配置pom 將jar包可以上傳到nexus倉庫中 -->
<distributionManagement>
    <!-- 發布版 -->
    <repository>
        <id>releases</id>
        <url>http://localhost:8081/repository/maven-releases/</url>
    </repository>
    <!-- 快照版 -->
    <snapshotRepository>
        <id>snapshots</id>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

3.使用deploy命令將項目打包,發布到nexus中

4.檢查倉庫中是否有上傳好的jar包

注意:

① 這里只有Snapshot的倉庫上傳成功,Release倉庫並沒有上傳成功,這是因為版本號名稱結尾有SNAPSHOT,默認以這個結尾是不會上傳到Release倉庫去的,去除就會上傳到Release倉庫且不會上傳到快照倉庫
② Release倉庫默認不支持重復發布,可配置
③ :setting中server標簽下的id要和pom文件中倉庫配置的id相同,即指定上傳到哪個倉庫

4)從遠程倉庫下載jar包

1.使用profiles標簽在Maven的setting.xml中配置倉庫組maven-public,倉庫組包括releases、snapshots、central

<profiles>
    <!-- 配置nexus遠程倉庫地址,從遠程倉庫下載jar包 -->
    <profile>
        <id>mynexus</id>
        <repositories>
            <repository>
                <id>nexus</id>
                <name>Nexus Repository</name>
                <url>http://localhost:8081/repository/maven-public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
    </profile>
</profiles>

2.激活profiles標簽 - activeProfile的屬性需和profile的ID一致

<!-- 激活profiles -->
<activeProfiles>
    <activeProfile>mynexus</activeProfile>
</activeProfiles>

3.測試

① 如果之前打包了,刪除本地倉庫下的mapper.jar
② 關閉mapper子項目,讓service子項目依賴mapper.jar包
③ 更新項目,從遠程倉庫中獲取mapper.jar

Maven控制台 - Maven Console

這里顯示我們Downloaded了

5)使用自定義用戶和自定義倉庫進行上傳和下載jar包

1.建議先將管理員密碼修改;

2.在Roles中可以增加用戶權限組,里邊可以自定義用戶權限;

Roles -> Create role

設置完然后點擊創建【Create role】

3.在Users中可以增加用戶,分配設置好的權限;

Users -> Create local user

4.在Repositories中新建倉庫;

① name:倉庫名稱;
② version pollcy:版本策略;
 - Release:發行版;
 - Snapshot:快照版;
 - Mixed:混合模式;
③ Layout pollcy:布局策略;
 - Strict:嚴格;
 - Permissive:寬松;
④ Deployment pollcy:部署策略;
 - Allow redeploy:允許重新部署;
 - Disable redeploy:禁止重新部署;
 - Read-only:只讀;

Repositories -> Create repository -> 設置Name倉庫名稱、Deployment pollcy部署策略(允許重復部署)

 - 自定義倉庫創建完成。

5、修改配置,將jar包上傳到自定義倉庫,然后從自定義倉庫下載jar包;

- pom.xml修改

- maven/conf/settins.xml修改

- 修改倉庫組,將自定義倉庫添加進去,不用的提取出來,保存

- 配置完成,上傳下載方式與上面一致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM