Docker安裝Maven私服Nexus3的實現(xiàn)步驟
在現(xiàn)代軟件開發(fā)中,私有倉庫是企業(yè)管理和分發(fā)內部依賴的重要工具,能夠提高開發(fā)效率、加強依賴管理并確保構建的穩(wěn)定性。Nexus Repository Manager 作為市場上常見的私服解決方案,不僅支持 Maven,還支持 npm、PyPI 等多種格式,為團隊提供了統(tǒng)一的制品管理平臺。
本文將介紹如何使用 Docker 快速部署 Maven 私服 Nexus3,幫助開發(fā)者搭建高效的依賴管理和分發(fā)環(huán)境,同時減少環(huán)境配置的復雜性和維護成本。通過 Docker 部署,您可以輕松實現(xiàn)版本化控制、靈活配置以及跨平臺的便捷使用,是中小型團隊和企業(yè)的理想選擇。
1、背景知識
在研發(fā)的過程中,很多企業(yè)都會針對自身業(yè)務特點來定制研發(fā)一些工具類庫,但是這些工具類庫又不會對外公開,那如何在組織內部共享這些類庫呢?一種很好的方式就是在公司內部搭建一套 Maven 私服倉庫。
搭建 Maven 私服倉庫可以提高項目構建和部署的效率、穩(wěn)定性和安全性,同時方便管理內部開發(fā)的組件和私有庫,比較適用于企業(yè)內部或者特定場景下的需求。
2、環(huán)境搭建
2.1、步驟一:下載 Nexus3 鏡像
在服務器命令行輸入如下命令,下載 Nexus3 鏡像(視網(wǎng)絡情況,可能需要耐心等待一會兒):
$ docker pull sonatype/nexus3
2.2、步驟二:查看 Nexus3 鏡像
在服務器命令行輸入如下命令,查看下載的 Nexus3 鏡像。
$ docker images
可以看到,已經(jīng)成功下載 Nexus3 鏡像

2.3、步驟三:創(chuàng)建 Nexus3 掛載文件夾
在服務器命令行輸入如下命令,創(chuàng)建 Nexus 的掛載文件夾:
$ mkdir /usr/local/nexus-data && chown -R 200 /usr/local/nexus-data
2.4、步驟四:啟動 Nexus3 容器
在服務器命令行輸入如下命令,啟動 Nexus3 容器:
$ docker run -d -p 8081:8081 --name nexus -v /usr/local/nexus-data:/nexus-data --restart=always sonatype/nexus3
可以看到,在上述啟動命令中,我們將 Nexus3 容器的 /nexus-data 目錄映射到了宿主機的 /usr/local/nexus-data 目錄。此時 Nexus3 容器運行過程中,在 /nexus-data 目錄產(chǎn)生的文件和日志都會在宿主機的 /usr/local/nexus-data 目錄中查看到。
Ps:Nexus3 默認啟動需要至少 2G 內存,所以一些環(huán)境下為了避免占用過多內,可以采用下面參數(shù)限制其內存:
$ docker run -d -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs" -p 8081:8081 --name nexus -v /usr/local/nexus-data:/nexus-data sonatype/nexus3
2.5、步驟五:查看 Nexus3 容器啟動狀態(tài)
在服務器命令行輸入如下命令,查看 Nexus3 容器啟動狀態(tài):
$ docker ps
可以看到,Nexus3 容器啟動成功,監(jiān)聽了 8081 端口。
3、環(huán)境配置
搭建完 Nexus3 環(huán)境后,我們還需要對其進行配置,具體配置的步驟如下所示。
3.1、步驟六:打開 Nexus3 頁面
Nexus3 容器啟動時監(jiān)聽的端口和宿主機端口都是 8081,所以,我們在瀏覽器地址欄輸入 http://宿主機IP地址:8081 打開 Nexus3 頁面:

3.2、步驟七:登陸 Nexus3 用戶
點擊 Nexus3 右上角的登錄(Sign in),點擊后會彈出如下圖所示的提示框:

對于第一次登陸,初始密碼的存放位置為 /nexus-data/admin.password,因為我們在啟動 Nexus3 容器時,將 Nexus3 容器的 /nexus-data 目錄映射到了宿主機的 /usr/local/nexus-data 目錄,所以,我們在宿主機的 /usr/local/nexus-data 目錄中也能夠查詢到 admin.password 文件。
$ cat /usr/local/nexus-data/admin.password
此時,我們就查看到登錄 Nexus3 的 admin 賬號的密碼為 13250a0a-1c02-498a-b15a-0a7aabad1add

將 admin 賬號和對應的密碼輸入到提示框中,即可登錄 Nexus3。

Ps:首次登錄后會自動彈出完成必要設置的提示框,點擊 Next 按鈕,設自行置新密碼,用于后續(xù)登錄 Nexus。之后點擊 Next 按鈕,選擇 Enable anonymous access 再次點擊 Next 按鈕后,點擊 Finish 按鈕,即可完成設置。
3.3、步驟八:配置阿里云代理倉庫
如下圖所示,Nexus 默認使用的遠程倉庫為 maven-central,從這個遠程倉庫下載依賴很慢,經(jīng)常連不上。

鼠標單機 maven-central 倉庫,查看 maven-central 倉庫配置的遠程鏈接,如下圖所示:

可以看到,maven-central倉庫配置的遠程鏈接為 https://repo1.maven.org/maven2/,從這個遠程倉庫下載依賴很慢,經(jīng)常連不上,所有我們需要配置阿里云遠程代理倉庫。
這里我們回到 Repositories 頁面,點擊 Create repository 按鈕:

點擊后進入選擇倉庫類型的頁面,這里我們選擇 maven2(proxy) 類型。
點擊選則 maven2(proxy) 類型后,進入配置遠程代理倉庫的頁面:

其中,每個配置項如下所示。
- Name:aliyun-central
- Version policy:Release
- Layout policy:Strict
- Remote storage:http://maven.aliyun.com/nexus/content/groups/public
接下來,拖動頁面右側的滾動條,滑到最下面,點擊 Create repository 按鈕

點擊 Create repository 按鈕后,就可以在 Repositories 列表中看到新配置的阿里云代理倉庫了

并且 Status 顯示的是 Online - Ready to connect,說明阿里云遠程倉庫配置成功。
3.4、步驟九:配置倉庫組
接下來,需要將 aliyun-central 配置到倉庫組,并且將 aliyun-central 排在 maven-central 上面。
在 Repositories 列表中,點擊 maven-public

點擊進入頁面后,下拉頁面右側的滾動條,找到如圖所示的配置

將 aliyun-central 移動到右側,并排在最上面后,點擊 Save 按鈕保存配置。
3.5、步驟十:創(chuàng)建用戶
接下來,創(chuàng)建一個用于上傳 Jar 包到倉庫的用戶,具體步驟如下所示。
點擊 Security 菜單下的 Users 菜單,再之后點擊 Create local user 按鈕

隨后,按照下圖所示設置用戶的基本信息

這里,自行記錄用戶的密碼,將 Status 設置為 Active 來啟用賬戶,并設置賬號的角色為 nx-admin,配置好之后,點擊底部的 Create local user 按鈕即可。
點擊后在 Security 菜單下的 Users 菜單的用戶列表中,可以查看到新創(chuàng)建的本地用戶

至此,Nexus3 配置完畢。
4、配置本地 Maven 倉庫
配置完 Nexus 后,接下來,還需要對本地的 Maven 倉庫進行配置,主要就是對 Maven 的 settings.xml 文件進行配置
4.1、步驟十一:復制 settings 文件
復制 setting.xml 文件為 setting-lizhengi.xml 文件
4.2、步驟十二:配置 servers 節(jié)點
在 settings-lizhengi.xml 文件中,找到 servers 節(jié)點,在 servers 節(jié)點中,配置在步驟十中創(chuàng)建的用戶
<server>
<id>binghe</id>
<username>lizhengi</username>
<password>myPassword</password>
</server>
4.3、步驟十三:配置 mirrors 節(jié)點
在 settings-lizhengi.xml 文件中,找到 mirrors 節(jié)點,在 mirrors 節(jié)點中,配置倉庫地址
<mirrors>
<mirror>
<id>lizhengi-nexus</id>
<name>Lizhengi Nexus3</name>
<url>http://tencentcloud:8081/repository/maven-public</url>
<mirrorOf>*</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
4.4、步驟十四:配置profiles節(jié)點
在 settings-lizhengi.xml 文件中,找到 profiles 節(jié)點,在 profiles 節(jié)點中,配置倉庫信息:
<profile>
<id>maven-public</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
<repositories>
<repository>
<id>nexus-public</id>
<url>http://tencentcloud:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
至此,Maven私服倉庫搭建完畢,并且本地Maven也已經(jīng)配置完畢。
后續(xù)使用 Maven 構建項目時,指定使用 settings-lizhengi.xml 文件即可將依賴的 Jar 文件和生成的 Jar 文件上傳到 Maven 私服倉庫,如果使用 IDEA 編譯項目,也需要在 IDEA 中,將 Maven 的配置文件指定為 settings-lizhengi.xml。
5、配置項目 pom.xml 文件
搭建完 Maven 私服倉庫,配置好本地 Maven 倉庫后,還需要在項目的 pom.xml 文件中進行相應的配置,具體如下所示:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!--發(fā)布代碼Jar插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!--發(fā)布源碼插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<!--這里的id與settings.xml中的servers節(jié)點配置的用戶ID一直,這樣才能使用配置的用戶去上傳到maven私有倉庫 -->
<!--此倉庫對應的為RELEASE版本的jar-->
<id>lizhengi</id>
<url>http://tencentcloud:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<!--這里的id與settings.xml中的servers節(jié)點配置的用戶ID一直,這樣才能使用配置的用戶去上傳到maven私有倉庫 -->
<!--此倉庫對應的為SNAPSHOT版本的jar-->
<id>lizhengi</id>
<url>http://tencentcloud:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
到此這篇關于Docker安裝Maven私服Nexus3的實現(xiàn)步驟的文章就介紹到這了,更多相關Docker安裝Maven私服Nexus3內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
windows10下安裝docker且使用wsl2安裝雙系統(tǒng)并構建最小jre鏡像和應用鏡像
這篇文章主要給大家介紹了windows10下安裝docker且使用wsl2安裝雙系統(tǒng)并構建最小jre鏡像和應用鏡像的流程步驟,文中有詳細的圖文介紹,需要的朋友可以參考下2023-08-08
docker安裝OpenWebUI報錯500的原因及解決方法
Open?WebUI是一個可擴展、功能豐富且用戶友好的自托管WebUI,旨在完全離線操作,這篇文章主要介紹了docker安裝OpenWebUI報錯500的原因及解決方法,需要的朋友可以參考下2025-07-07
Docker安裝Jenkins-2.249.3-1.1的詳細過程
這篇文章主要介紹了Docker安裝Jenkins-2.249.3-1.1,通過編寫docke安裝腳本來實現(xiàn)安裝目的,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10
dockerfile報錯“/bin/sh -c yum -y install“問
文章主要討論了解決Docker容器安裝vim時出現(xiàn)錯誤的問題,指出是容器版本不兼容導致,建議使用Centos 7版本的容器,提供了一種解決方案,并鼓勵讀者參考此經(jīng)驗2026-05-05

