nexus是一個強大的maven倉庫管理工具,使用nexus可以方便的管理內部倉庫,也就是私服,專門用於管理公司內部的jar包,可以將公司內部的jar包上傳到nexus中。
一、下載和安裝啟動
去nexus官網:https://www.sonatype.com/ ,下載然后進行解壓即可,官網下載比較慢,也有可能無法進行下載,如果無法下載,解決方案參加博客: https://blog.csdn.net/weixin_44765605/article/details/103020547 。
下載成功后解壓出現如下圖兩個文件夾:上面一個是nexus安裝目錄,work是一個工作目錄。

cmd進入nexus安裝目錄下的bin目錄,執行nexus.exe/run命令啟動nexus服務。啟動成功在瀏覽器輸入localhost:8081即可出現nexus頁面。進入如下界面:

可以進行登錄,初始用戶名:admin,剛開始下載登錄時的密碼在work目錄中,但是一般會設置成admin123。

如上圖可以對倉庫repository進行管理操作,例如查看倉庫詳情,新建一個倉庫等。name是倉庫名稱,type是倉庫類型,倉庫類型解釋如下:

二、上傳和下載jar包
1、上傳jar到nexus中。只需要配置兩個地方即可。
在maven的conf/settings.xml文件中的如下節點中配置如下內容:
<servers>
<!-- conf private maven repository in there,server可以配置多個-->
<server>
<id>releases</id>
<!-- nexus登錄的用戶名和密碼-->
<username>admin</username>
<password>admin123</password>
</server>
</servers>
此外需要在要上傳jar的項目的pom.xml文件中,配置上傳路徑:
<!--nesxus上傳jar到私服-->
<distributionManagement>
<repository>
<!--這個id需要和上面settings.xml中配置的id一致-->
<id>releases</id>
<url>http://localhost:8081/repository/testnesxus/</url>
</repository>
</distributionManagement>
配置完成之后可以直接點擊deploy按鈕,或者cmd進入項目目錄中執行mvn deploy命令就可以將jar上傳到私服中了。
但有時會上傳失敗,如果上傳失敗了可參考以下解決方案:
- 創建的倉庫類型一定要是hosted類型的,否則無法上傳。
- Snapshot庫發布的版本必須以SNAPSHOT結尾。
- release發布的版本不能以SNAPSHOT結尾。
參考博客: https://blog.csdn.net/qq_32971807/article/details/79006273
nexus界面上傳jar包和刪除jar包可參見博客: https://blog.csdn.net/u011051912/article/details/105634265
2、從nexus中下載jar包
從nexus中下載jar只需要配置maven的settings配置文件即可,依賴可以直接在項目pom中引入坐標即可。
在settings配置文件中的如下節點中配置如下內容即可:
<profiles>
<!--可以配置多個profile -->
<profile>
<id>helloworld</id>
<!--遠程倉庫列表-->
<repositories>
<repository>
<id>down1</id>
<url>http://localhost:8081/repository/testnesxus/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</profile>
</profiles>
其他nexus相關博客:
(1) https://blog.csdn.net/qh870754310/article/details/83780812 (nexus介紹)
(2) https://blog.csdn.net/qq_33188563/article/details/82154118 (nexus私服)
(3) https://blog.csdn.net/lk142500/article/details/95869196?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase (使用nexus創建私服)
