1. Nexus 介绍 ¶
1. 什么是 Nexus? ¶
Nexus 是 Sonatype 推出的多功能仓库管理器,核心能力是简化仓库维护与外部仓库访问,不仅支持 Maven 仓库管理,还可搭建 YUM、PyPI、npm、Docker、NuGet、RubyGems 等多种类型的私有仓库,覆盖主流开发场景的依赖管理需求。
其核心特性包括:
- 轻量易部署:无需数据库,基于文件系统 + Lucene 组织数据,开箱即用;
- 高效代理与缓存:代理远程公共仓库(如 Maven 中央仓库、npm 官方源),同时缓存下载的构件,减少重复下载;
- 安全可控:支持 WebDAV、LDAP 身份认证,可管控仓库访问权限,实现依赖审计;
- 友好交互:基于 ExtJS 开发 UI 界面,提供完整 REST API,支持与 Eclipse(m2eclipse 插件)等工具集成;
- 低资源占用:内存消耗少,依赖简单文件系统即可稳定运行。
为什么要搭建 Nexus 私服? ¶
若不使用 Nexus 私服,团队所有成员需重复从公共仓库(如 Maven 中央仓库)下载依赖,存在带宽浪费、构建缓慢、内网无法访问等问题。搭建私服的核心价值的在于:
- 提升效率:缓存公共依赖,避免重复下载,加速项目构建;
- 节省资源:减少外网带宽消耗,降低公共仓库负载;
- 保障稳定:公共仓库故障时,可依赖私服缓存继续开发;
- 管控依赖:支持部署团队内部公共构件,实现依赖统一管理与审计;
- 适配内网:解决内网环境无法访问外部仓库的问题,满足封闭开发需求。
2. Nexus 版本选择及下载 ¶
版本选择 ¶
Nexus 主要分为 2.x 和 3.x 两个大版本:
- 2.x 版本较陈旧,部分核心功能(如远程仓库自动同步)可能失效,且兼容性较差;
- 3.x 版本为当前主流,修复了旧版本缺陷,优化了性能与 UI 体验,支持更多仓库类型(如 Docker),功能更完善,建议优先选择。
3. nexus 安装 ¶
docker-compose 方式安装 ¶
services:
nexus3:
image: sonatype/nexus3:latest
container_name: nexus3
restart: always
ports:
- "8081:8081"
environment:
- INSTALL4J_ADD_VM_PARAMS=-Xms2703m -Xmx4G -XX:MaxDirectMemorySize=2703m -Djava.util.prefs.userRoot=/nexus-data/javaprefs
- NEXUS_DATASTORE_ENABLED=true
- NEXUS_DATASTORE_NEXUS_JDBCURL=jdbc:postgresql://postgres:5432/nexus3
- NEXUS_DATASTORE_NEXUS_USERNAME=test
- NEXUS_DATASTORE_NEXUS_PASSWORD=!QAZtesttesttest
volumes:
- ./data/nexus/nexusdata:/nexus-data
ulimits:
nofile:
soft: 65536 # 软限制
hard: 65536 # 硬限制
depends_on:
- postgres
postgres:
image: "postgres:17-alpine"
restart: always
environment:
- POSTGRES_USER=test
- POSTGRES_PASSWORD=!QAZtesttesttest
- POSTGRES_DB=nexus3
healthcheck:
test: pg_isready
interval: 10s
timeout: 5s
retries: 5
volumes:
- ./data/pg17_data:/var/lib/postgresql/data
command: postgres -c 'max_connections=1000' -c 'shared_buffers=1280MB'
1. 准备操作
# 1. 创建 Nexus 数据目录
mkdir -p ./data/nexus/nexusdata
# 2. 递归修改目录所有者为 UID=200、GID=200 的用户/组
chmod -R 777 ./data/
2. 启动服务
docker compose up -d
3. 查看密码
cat data/nexus/nexusdata/admin.password
nexus 二进制安装 ¶
1. 安装 java8 ¶
jdk8 需要登录才能下载
https://www.oracle.com/java/technologies/downloads/?er=221886#java8
tar -xf jdk-8u421-linux-x64.tar.gz -C /usr/local/
查看版本
/usr/local/jdk1.8.0_421/bin/java -version
2. 部署 nexus ¶
wget https://download.sonatype.com/nexus/3/nexus-3.12.1-01-unix.tar.gz
tar -xf nexus-3.70.1-02-unix.tar.gz -C /usr/local/
cd /usr/local/
mv nexus-3.70.1-02 nexus
useradd nexus
chown -R nexus:nexus /usr/local/nexus
2. 修改 nexus jdk 配置
vim /usr/local/nexus/bin/nexus.vmoptions
--- 修改 jdk 版本配置---
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/jdk1.8.0_421
---
3. nexus 开启
chown -R nexus:nexus /usr/local/sonatype-work/
su - nexus
/usr/local/nexus/bin/nexus start 将nexus放至前台启动,再可用start放至后台启动 会启动 8081 web 端口
3. 查看密码 ¶
1. 会启动 8081 端口
cat /usr/local/sonatype-work/nexus3/admin.password