Sonatype Nexus Repository(通常简称 Nexus)

一、Docker 方式搭建(推荐)

Docker 方式能最大程度避免环境依赖问题,一键启动,是新手的首选。

前置条件

  1. 服务器 / 本地已安装 Docker 和 Docker Compose
  2. 至少 2GB 内存(Nexus 运行需要一定内存)
  3. 确保 8081 端口未被占用

1. 创建目录(持久化数据)

首先创建 Nexus 数据存储目录,避免容器删除后数据丢失:

bash

运行

复制代码
# 创建数据目录并设置权限(Nexus 容器内运行用户是 200)
mkdir -p /opt/nexus/data
chown -R 200:200 /opt/nexus/data

2. 编写 Docker Compose 文件

/opt/nexus 目录下创建 docker-compose.yml

yaml

复制代码
version: '3'
services:
  nexus:
    image: sonatype/nexus3:latest  # 官方镜像,也可指定版本如3.60.0
    container_name: nexus3
    restart: always  # 开机自启
    ports:
      - "8081:8081"  # Web 访问端口
      - "8082:8082"  # 可选:Docker 仓库端口(如需管理Docker镜像)
      - "8083:8083"  # 可选:npm 仓库端口
    environment:
      - INSTALL4J_ADD_VM_PARAMS=-Xms512m -Xmx1024m  # 内存配置,根据服务器调整
    volumes:
      - /opt/nexus/data:/nexus-data  # 数据持久化

3. 启动 Nexus

bash

运行

复制代码
# 进入目录启动
cd /opt/nexus
docker-compose up -d

# 查看启动日志(首次启动可能需要1-2分钟)
docker logs -f nexus3

4. 访问与初始化

  1. 访问 Web 界面 :浏览器打开 http://服务器IP:8081

  2. 获取初始密码

    bash

    运行

    复制代码
    # 查看初始管理员密码
    cat /opt/nexus/data/admin.password
  3. 初始化配置

    • 首次登录使用用户名 admin + 上述初始密码
    • 登录后会提示重置密码,建议设置强密码
    • 可选是否启用匿名访问(测试环境可开,生产环境建议关闭)

二、传统手动安装方式(适用于无 Docker 环境)

前置条件

  1. 服务器安装 JDK 8 或 11(Nexus 3.x 要求)
  2. 下载 Nexus 安装包:官网下载地址

1. 安装步骤

bash

运行

复制代码
# 1. 解压安装包(假设下载的是 nexus-3.60.0-unix.tar.gz)
tar -zxvf nexus-3.60.0-unix.tar.gz -C /opt/
mv /opt/nexus-3.60.0 /opt/nexus

# 2. 创建 nexus 用户(不建议用 root 运行)
useradd -r -m -U -d /opt/nexus -s /bin/bash nexus
chown -R nexus:nexus /opt/nexus
chown -R nexus:nexus /opt/sonatype-work  # 数据目录(解压后自动生成)

# 3. 修改配置文件(可选,调整内存)
vi /opt/nexus/bin/nexus.vmoptions
# 修改以下参数(根据服务器内存调整)
-Xms512m
-Xmx1024m

# 4. 设置开机自启
ln -s /opt/nexus/bin/nexus /etc/init.d/nexus
chkconfig --add nexus
chkconfig nexus on

# 5. 启动 Nexus
su - nexus -c "/opt/nexus/bin/nexus start"

# 6. 查看状态
su - nexus -c "/opt/nexus/bin/nexus status"

2. 后续初始化

和 Docker 方式一致:访问 http://IP:8081,用 admin + 初始密码(初始密码路径:/opt/sonatype-work/nexus3/admin.password)登录并重置密码。


三、常用操作与注意事项

1. 核心功能配置(新手常用)

  • 创建仓库 :登录后点击左侧「Repositories」→「Create repository」,可创建:
    • maven2 (proxy):代理中央仓库(如阿里云 Maven 镜像)
    • maven2 (hosted):私有仓库(存放自己开发的包)
    • maven2 (group):仓库组(整合代理 + 私有仓库,方便项目统一引用)
  • 仓库访问权限:左侧「Security」→「Roles/Permissions」配置用户和权限,生产环境建议严格控制访问。

2. 常见问题排查

  • 端口被占用 :修改 nexus.properties(Docker 方式在 /opt/nexus/data/etc/nexus.properties,手动安装在 /opt/sonatype-work/nexus3/etc/nexus.properties)中的 application-port 参数。
  • 启动失败 :查看日志(Docker:docker logs nexus3;手动安装:/opt/sonatype-work/nexus3/log/nexus.log)。
  • 内存不足 :调整 nexus.vmoptions 中的 -Xms-Xmx 参数。

总结

  1. 推荐方案 :优先使用 Docker 搭建 Nexus,步骤简单、环境隔离、易维护,核心命令是 docker-compose up -d 启动,cat /opt/nexus/data/admin.password 获取初始密码。
  2. 初始化关键 :首次登录必须重置 admin 密码,生产环境建议关闭匿名访问、配置权限。
  3. 核心用途:搭建后可创建 Maven/Docker 等仓库,实现私有包管理和依赖代理,解决项目依赖下载慢、私有包分发的问题。
相关推荐
青云计划10 小时前
知光项目知文发布模块
java·后端·spring·mybatis
赶路人儿10 小时前
Jsoniter(java版本)使用介绍
java·开发语言
探路者继续奋斗10 小时前
IDD意图驱动开发之意图规格说明书
java·规格说明书·开发规范·意图驱动开发·idd
消失的旧时光-194311 小时前
第十九课:为什么要引入消息队列?——异步系统设计思想
java·开发语言
A懿轩A11 小时前
【Java 基础编程】Java 面向对象入门:类与对象、构造器、this 关键字,小白也能写 OOP
java·开发语言
乐观勇敢坚强的老彭12 小时前
c++寒假营day03
java·开发语言·c++
biubiubiu070612 小时前
谷歌浏览器无法访问localhost:8080
java
大黄说说12 小时前
新手选语言不再纠结:Java、Python、Go、JavaScript 四大热门语言全景对比与学习路线建议
java·python·golang
烟沙九洲12 小时前
Java 中的 封装、继承、多态
java
识君啊13 小时前
SpringBoot 事务管理解析 - @Transactional 的正确用法与常见坑
java·数据库·spring boot·后端