nexus必须以非root用户运行并调大jvm内存:创建nexus用户、修改nexus.rc指定run_as_user,将nexus.vmoptions中堆内存设为-xms1g -xmx2g,且jdk 11+需正确配置java_home环境变量。

nexus 不能以 root 用户直接运行,且默认堆内存(约270MB)在同步远程索引或代理大量构件时极易触发 OOM 或卡死;必须改用非特权用户 + 显式调大 JVM 参数,否则后续所有仓库配置都会失败。
确保 JDK 11+ 已就绪且 JAVA_HOME 生效
执行 java -version 必须输出包含 11. 和 OpenJDK Runtime Environment 的行。若未设置 JAVA_HOME,Nexus 启动会静默失败——它不读取 PATH 中的 java 路径,只认这个环境变量。
常见错误现象:bin/nexus start 返回空、systemctl status nexus 显示 “failed to start”,但日志里没报错。
- CentOS/RHEL:运行
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk' >> /etc/profile - Ubuntu/Debian:运行
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> /etc/profile - 执行
source /etc/profile并验证echo $JAVA_HOME输出非空路径
解压后必须修改 nexus.rc 并切换运行用户
Nexus 3.x 强制拒绝 root 启动,即使你加了 RUN_AS_USER=root,它也会在启动前检查 UID 并退出。不改用户,bin/nexus start 看似成功,实则子进程被立即 kill。
正确做法是:
- 创建专用用户:
useradd -r -m -U -d /opt/nexus nexus - 赋权:
chown -R nexus:nexus /opt/nexus - 编辑
bin/nexus.rc,取消注释并设为:run_as_user="nexus" - 切用户验证:
su - nexus -c "ls -l bin/nexus"确保可执行
启动前务必调整 nexus.vmoptions 内存参数
默认 nexus.vmoptions 仅分配 -Xms270m -Xmx512m,而首次加载 maven-central 代理仓库 + 下载远程索引时,峰值内存常超 1.2GB。不调大会卡在 “Indexing…” 状态数小时,甚至导致 sonatype-work 目录损坏。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
建议最小配置(适用于 4GB RAM 服务器):
-Xms1g -Xmx2g -XX:MaxDirectMemorySize=2g -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass
改完保存,再启动。观察 logs/jvm.log 开头是否有 MaxHeapSize = 2147483648 确认生效。
首次登录后必须立刻开启 Central 的远程索引
默认 maven-central 仓库的 Download Remote Indexes 是 false,这意味着你配置好 settings.xml 镜像后,mvn compile 仍会超时——Nexus 根本没索引,无法按 GAV 快速定位 jar,只能靠慢速遍历。
操作路径(Web UI):
- 登录后进入
Repositories → maven-central → Configuration - 勾选
Download Remote Indexes = true - 点击右上角
Repair Index(不是 “Rebuild Index”) - 等待 5–15 分钟,看
logs/nexus.log是否出现Finished indexing repository
不完成这步,maven-public 组对客户端来说就是“有接口、无内容”的假仓库。
Nexus 启动后端口监听和 UI 可访问 ≠ 仓库可用。真正卡住人的永远是索引、权限、内存三者之一,而不是安装步骤本身。










