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>
相关推荐
互联网工匠7 小时前
分布式操作的一致性方案
分布式·架构
哥哥还在IT中7 小时前
Redis多线程架构深度解析-从单线程到I/O Threading
redis·架构·bootstrap
赵小川7 小时前
Taro 包升级实录 — 从 3.3 到 3.6.3 完整指南
前端·架构
二宝1528 小时前
黑马商城day3-微服务01
微服务·云原生·架构
我命由我123458 小时前
Spring Cloud - Spring Cloud 微服务概述 (微服务的产生与特点、微服务的优缺点、微服务设计原则、微服务架构的核心组件)
java·运维·spring·spring cloud·微服务·架构·java-ee
纪卓志George8 小时前
从 AWS 故障反思:广告系统的全球单元化部署
后端·架构
七宝大爷9 小时前
深度解析英伟达DGX与HGX服务器——从架构差异到场景选择
运维·服务器·架构
云雾J视界10 小时前
Linux企业级解决方案架构:字节跳动短视频推荐系统全链路实践
linux·云原生·架构·kubernetes·音视频·glusterfs·elk stack
没有bug.的程序员10 小时前
金融支付分布式架构实战:从理论到生产级实现
java·分布式·微服务·金融·架构·分布式调度系统