1. 安裝Nexus3
- 禁用防火牆
systemctl stop firewalld
systemctl disable firewalld
- 拉取nexus鏡像
docker pull sonatype/nexus3
- 配置外部掛在文件夾
mkdir -p /opt/nexus/data
chmod 777 /opt/nexus/data
- 安裝
docker run -e INSTALL4J_ADD_VM_PARAMS="-Dstorage.diskCache.diskFreeSpaceLimit=2048" -d -p 8081:8081 --name nexus3 -v /opt/nexus/data/:/nexus-data sonatype/nexus3
- 查看容器日志
docker logs -f -t nexus3
或者直接上傳nexus壓縮包(nexus-3.37.3-02-unix.tar.gz)
- 上傳並解壓
tar -zxvf nexus-3.37.3-02-unix.tar.gz -C /opt/
- 創建軟連接
ln -s /opt/nexus-3.37.3-02 /opt/nexus3
- 配置JVM堆棧信息
cd /opt/nexus3/bin/
vi nexus.vmoptions
-Xms4G
-Xmx4G
-XX:MaxDirectMemorySize=6717m
詳細參加https://help.sonatype.com/repomanager3/installation-and-upgrades/configuring-the-runtime-environment
官方推薦配置如下圖

- 啟動nexus3
# 前台啟動
bin/nexus run
# 后台啟動
bin/nexus start
首次啟動推薦使用nexus run,nexus需要初始化很多組件。便於觀察。

2. 配置
訪問ip:8081端口進入web ui頁面。查看password密碼
[root@maven ~]# cat /opt/sonatype-work/nexus3/admin.password
c3615332-a263-453a-b5c1-c8dc0f035685

登錄后重置密碼

配置允許任何人訪問

- 配置中心倉庫為國內源。Repository-->maven-central。

在proxy中設置華為源地址https://mirrors.huaweicloud.com/repository/maven/

在maven-release中配置Dependency policy中,配置允許重推替包。

3. 本地maven配置
在本地maven安裝目錄下的conf--> settings.xml, 添加如下內容
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin@123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin@123</password>
</server>
<mirror>
<!--該鏡像的唯一標識符。id用來區分不同的mirror元素。 -->
<id>maven-public</id>
<!--鏡像名稱 -->
<name>maven-public</name>
<!--*指的是訪問任何倉庫都使用我們的私服-->
<mirrorOf>*</mirrorOf>
<!--該鏡像的URL。構建系統會優先考慮使用該URL,而非使用默認的服務器URL。 -->
<url>http://192.168.147.101:8081/repository/maven-public/</url>
</mirror>
<profile>
<id>dev</id>
<repositories>
<repository>
<id>local-nexus</id>
<url>http://192.168.147.101:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
4.maven工程父pom配置
<!--dependencies下面-->
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.147.101:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.147.101:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
此處
下的id,需要和conf文件下pom文件server標簽中id保持一致。
項目中父工程下的配置

maven安裝包conf目錄下settings.xml中的配置

5. 測試推包
在maven插件中,執行deploy操作。

隨后deploy完成后,可以在nexus中查看上傳的包。

6. 測試引包
刪除電腦本地倉庫中的model包,在新創建的項目中引入私服上的model包。正常引入。
<dependency>
<groupId>com.atguigu</groupId>
<artifactId>model</artifactId>
<version>1.0</version>
</dependency>

