在 Ubuntu 24.04上安装 Sonatype Nexus Repository(Maven 私服) 是一个很常见的企业或个人构建需求。下面我给你一份完整、稳定、可直接部署的安装指南(基于 Nexus Repository OSS 3.x 最新版)。
🚀 一、安装前准备
✅ 系统要求
-
Ubuntu 20.04 / 22.04 / 24.04(都可以)
-
2 GB+ 内存(推荐 4 GB)
-
JDK 8 ~ 21(推荐 JDK 21,最新版 Nexus 支持)
-
开放端口:默认 8081
🧩 二、安装 JDK(如果还没装)
sudo apt update
sudo apt install openjdk-21-jdk -y
java -version
确认输出中有:
openjdk version "21"
📦 三、下载并安装 Nexus
1️⃣ 创建目录
sudo mkdir -p /opt/nexus
cd /opt/nexus
2️⃣ 下载最新 Nexus 版本
到官网查最新版本:
🔗 https://help.sonatype.com/repomanager3/download
或者直接执行(示例为最新 LTS 版本):
sudo wget https://download.sonatype.com/nexus/3/nexus-3.85.0-03-linux-x86_64.tar.gz

3️⃣ 解压
bash
sudo tar -xvf nexus-3.85.0-03-linux-x86_64.tar.gz
你会看到一个目录,例如:
bash
nexus-3.85.0-03/

将其重命名为 nexus3:
bash
sudo mv nexus-3.85.0-03 nexus3

🧱 四、创建运行用户(避免用 root)
bash
sudo useradd -r -m -d /opt/nexus -s /bin/bash nexus
sudo chown -R nexus:nexus /opt/nexus

⚙️ 五、配置 Nexus 环境变量
编辑:
bash
sudo nano /opt/nexus/nexus3/bin/nexus
找到:
#run_as_user=""
改成:
run_as_user="nexus"
保存文件
-
按下
Ctrl + O
(写作 "Output")-
会提示:
File Name to Write: filename
-
回车确认保存。
-
🔧 六、可选:配置 JVM 内存(大项目建议)
编辑:
bash
sudo nano /opt/nexus/nexus3/bin/nexus.vmoptions
根据服务器内存修改:
-Xms1G
-Xmx2G
-XX:MaxDirectMemorySize=2G
⚙️ 七、配置环境变量(让系统找到 Nexus 命令)
bash
sudo nano /etc/profile.d/nexus.sh
添加:
bash
export NEXUS_HOME=/opt/nexus/nexus3
export PATH=$NEXUS_HOME/bin:$PATH
保存并执行:
bash
source /etc/profile.d/nexus.sh
🚀 八、启动 Nexus
切换到 nexus 用户:
sudo su - nexus
启动:
bash
/opt/nexus/nexus3/bin/nexus start
查看状态:
bash
/opt/nexus/nexus3/bin/nexus status
日志文件位置:
/opt/nexus/sonatype-work/nexus3/log/nexus.log
🌐 九、访问 Nexus Web 控制台
浏览器打开:
http://<你的服务器IP>:8081/
首次启动可能需要 1~2 分钟加载。
🔑 十、获取初始管理员密码
方法 1:退出当前用户
直接输入:exit
或者按下:Ctrl + D
这会 退出当前 shell,回到上一个用户(例如你最开始的登录用户)。
bash
sudo cat /opt/nexus/sonatype-work/nexus3/admin.password
复制文件中内容,在登录页面用:
-
用户名:
admin
-
密码:上面文件中的密码
首次登录会提示你修改密码。
🧰 十一、设置开机自启(systemd)
创建服务文件:
sudo nano /etc/systemd/system/nexus.service
内容如下:
[Unit]
Description=Nexus Repository Manager
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
User=nexus
Group=nexus
ExecStart=/opt/nexus/nexus3/bin/nexus start
ExecStop=/opt/nexus/nexus3/bin/nexus stop
Restart=on-abort
[Install]
WantedBy=multi-user.target
保存后执行:
sudo systemctl daemon-reload
sudo systemctl enable nexus
sudo systemctl start nexus
检查运行状态:
sudo systemctl status nexus
✅ 十二、访问和使用
默认界面:
http://<server-ip>:8081/
默认仓库结构:
-
maven-releases → 正式版本上传
-
maven-snapshots → SNAPSHOT版本
-
maven-central → 代理中央仓库
-
maven-public → 上述三个聚合仓库(开发者使用)
⚠️ 十三、常见问题
问题 | 解决方法 |
---|---|
Nexus 启动失败,提示 "database read-only" | 磁盘写权限不足,或 DB 损坏。可备份 /opt/nexus/sonatype-work/nexus3/db 后重新导入 JSON |
页面访问不到 | 检查防火墙:sudo ufw allow 8081 |
Nexus 日志过大 | 用 logrotate 定期清理 /opt/nexus/sonatype-work/nexus3/log |
💡 十四、可选优化
-
改端口号
bashsudo nano /opt/nexus/nexus3/etc/nexus-default.properties
找到:
application-port=8081
改为你想要的端口,重启服务。
你修改了 nexus-default.properties
的端口号,但端口没有生效,这在 Nexus OSS 中是 很常见的新手误区 。原因在于 nexus-default.properties
只用于默认配置,已经生成的 Nexus 实例会优先使用 nexus.properties
文件。
下面我帮你分析原因并给出正确修改方法👇
1️⃣ 原因分析
-
nexus-default.properties
-
位于:
/opt/nexus/nexus3/etc/nexus-default.properties
-
作用:模板配置 ,只在第一次启动时复制生成
nexus.properties
-
后续启动会忽略它
-
-
nexus.properties
-
位于:
/opt/nexus/nexus3/etc/nexus.properties
-
Nexus 实际运行时读取的文件
-
修改这个文件才能真正生效
-
所以,你修改的是模板文件,并没有被 Nexus 使用。
2️⃣ 正确修改端口的方法
-
打开实际配置文件
sudo nano /opt/nexus/nexus3/etc/nexus.properties
-
修改端口号
找到这一行:
application-port=8081
改成你想要的端口,例如:
application-port=8090
保存并退出 (Ctrl+O
→ 回车 → Ctrl+X
)
3. 重启 Nexus
sudo systemctl restart nexus
或者,如果你直接用 nexus 用户启动:
sudo su - nexus
/opt/nexus/nexus3/bin/nexus restart
4. 验证端口是否生效
netstat -tlnp | grep java
或者访问:
http://<服务器IP>:8090/
3️⃣ ⚠️ 注意事项
-
确保你修改的是
nexus.properties
,而不是nexus-default.properties
-
修改端口时,确认防火墙允许新端口:
sudo ufw allow 8090
-
Nexus 需要重启才能生效,修改后不会自动刷新
💡 小贴士:
-
nexus-default.properties
一般 不再改动 -
所有自定义配置都写在
nexus.properties
-
配置上传凭证
在 UI 中新建 Repository → "maven2 (hosted)" → 选择
Releases
/Snapshots
类型。 -
设置 Maven 上传信息
Maven
settings.xml
中:<server> <id>nexus-releases</id> <username>admin</username> <password>你的密码</password> </server>