Nexus 搭建 Maven 私服

前言

之前对 Maven 依赖的 jar 包的管理都是直接备份本地的缓存仓库,但是日渐发现这种方式即便是对个人来说也存在着很大的局限性:

  • 难以在不同的操作系统间进行共享本地缓存仓库,每次都要重新修改 settings.xml 文件。

折腾本地共享缓存仓库的根本原因是:忍不了 Win 又离不开 Win。就比如本教主好不容易折腾好的 Arch 却因为疫情上网课的需要又重新换到 Win, 真想把那些。。。。。。

  • 即便本地缓存仓库中的 jar 包树算是结构了,但是总觉得不太相信这种管理方式。

这算是强迫症的范畴。。。。。。

  • 私服的搭建终究是必要的,总不能因为现在暂时用不到就一直不了解一下吧。

欠下的债,终究是要还的。也许趁着年轻还可以这儿感兴趣一下那儿感兴趣一下,渐渐的浮累了其实沉下来也挺好的。

虽然究其原因还是一没钱买Mac,二没方便的网络允许,但终归到底还是要试一下的嘛。希望搭建的私服满足如下需求:

  • 本地私服的数据持久化
  • 本地私服服务停止时代理阿里云仓库

步骤

搭建服务

首先启动一个 nexus3 的 Docker 容器,以 docker-compose 的形式启动。

version: "3.7"
services:
  nexus3:
    image: sonatype/nexus3
    container_name: nexus3
    privileged: true
    ports:
      - 8081:8081
    volumes:
      - /e/docker/nexus3-8081/nexus-data/:/nexus-data/

进入到 docker-compose 所在的路径下启动 nexus3。

docker-compose -f ./docker-compose-app.yaml up -d

maven 配置nexus账号密码 nexus搭建maven_本地缓存


访问 localhost:8081并更改密码。

maven 配置nexus账号密码 nexus搭建maven_maven 配置nexus账号密码_02

配置阿里云代理

maven 配置nexus账号密码 nexus搭建maven_jar_03

创建代理仓库:

maven 配置nexus账号密码 nexus搭建maven_本地缓存_04


设置代理仓库要代理的路径:

maven 配置nexus账号密码 nexus搭建maven_本地缓存_05

在最下方保存。

设置 public 的组成员排序

maven 配置nexus账号密码 nexus搭建maven_docker_06

在最下方保存。

设置本地缓存仓库的 settings.xml

配置仓库为镜像:

maven 配置nexus账号密码 nexus搭建maven_maven 配置nexus账号密码_07

由于配置多个镜像时,Maven 只会使用一个第一个镜像,当且仅当第一个镜像无法连接时才使用第二个镜像。所以将私服放在最上面。

  1. 如果 nexus 服务正常,nexus 将代理阿里云的镜像,若找不到则从 hosted 中查找。
  2. 如果 nexus 服务未启动,Mavne 将使用阿里云的镜像。

在 IDEA 中发布 jar 包到私服

maven 配置nexus账号密码 nexus搭建maven_maven 配置nexus账号密码_08

在 nexus 中查看:

maven 配置nexus账号密码 nexus搭建maven_maven 配置nexus账号密码_09