Ubuntu 24.04 上安装 Sonatype Nexus Repository(Maven 私服)

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"

保存文件

  1. 按下 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

💡 十四、可选优化

  1. 改端口号

    bash 复制代码
    sudo 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️⃣ 正确修改端口的方法

  1. 打开实际配置文件

    sudo nano /opt/nexus/nexus3/etc/nexus.properties

  2. 修改端口号

找到这一行:

复制代码
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️⃣ ⚠️ 注意事项

  1. 确保你修改的是 nexus.properties ,而不是 nexus-default.properties

  2. 修改端口时,确认防火墙允许新端口:

    sudo ufw allow 8090

  3. Nexus 需要重启才能生效,修改后不会自动刷新


💡 小贴士:

  • nexus-default.properties 一般 不再改动

  • 所有自定义配置都写在 nexus.properties

  1. 配置上传凭证

    在 UI 中新建 Repository → "maven2 (hosted)" → 选择 Releases / Snapshots 类型。

  2. 设置 Maven 上传信息

    Maven settings.xml 中:

    复制代码
    <server>
        <id>nexus-releases</id>
        <username>admin</username>
        <password>你的密码</password>
    </server>
相关推荐
绝无仅有1 天前
某多多大厂面试相关计算机网络知识点总结
后端·面试·架构
绝无仅有1 天前
调用服务出现网络错误的问题排查与解决
后端·面试·架构
存在morning1 天前
【人工智能学习笔记 三】 AI教学之前端跨栈一:React整体分层架构
笔记·学习·架构
知兀1 天前
【Spring/SpringBoot】<dependencyManagement> + import 导入能继承父maven项目的所有依赖,类似parent
spring boot·spring·maven
canonical_entropy1 天前
最小信息表达:从误解到深层理解的五个关键点
后端·架构
手握风云-1 天前
JavaEE 进阶第五期:Maven 之道,项目的依赖艺术与构建哲学
java·java-ee·maven
蚂小蚁2 天前
一文吃透:宏任务、微任务、事件循环、浏览器渲染、Vue 批处理与 Node 差异(含性能优化)
前端·面试·架构
吃饺子不吃馅2 天前
前端画布类型编辑器项目,历史记录技术方案调研
前端·架构·github
程序猿追2 天前
异腾910B NPU实战:vLLM模型深度测评与部署指南
运维·服务器·人工智能·机器学习·架构