Appearance
CentOS 7 部署 Nexus 私有 Maven 仓库
第一步:安装 Java 环境
bash
$ curl -O https://download.bell-sw.com/java/21.0.11+11/bellsoft-jdk21.0.11+11-linux-amd64.tar.gz这里是安装步骤。
第二步:下载与安装 Nexus
Nexus 以压缩包形式分发,通常安装于 /opt 目录下。
- 下载安装包:bash若下载缓慢,可在本地下载 tar.gz 包后,通过
cd /opt # 下载最新版 Nexus 3 (OSS 版) sudo wget https://download.sonatype.com/nexus/3/nexus-3.92.2-01-linux-x86_64.tar.gzscp命令上传至服务器。 - 解压安装包:bash
sudo tar -zxvf nexus-3.92.2-01-linux-x86_64.tar.gz # 重命名解压后的文件夹,便于后续操作 sudo mv nexus-3.* nexus
第三步:创建专用用户并授权
出于安全考虑,Nexus 官方不建议使用 root 用户直接运行服务。
- 创建
nexus用户:bashsudo useradd -r -m -U -d /opt/nexus nexus - 更改目录权限:bash
sudo chown -R nexus:nexus /opt/nexus sudo chown -R nexus:nexus /opt/sonatype-work 2>/dev/null - 指定运行用户:bash
echo 'run_as_user="nexus"' | sudo tee -a /opt/nexus/bin/nexus.rc
第四步:配置 Nexus (可选)
Nexus 的默认配置(如端口)通常已足够,但可根据需要进行修改。
- 修改监听端口: 编辑
/opt/nexus/etc/nexus-default.properties文件,修改application-port配置项(默认为 8081)。 - 调整 JVM 内存: 编辑
/opt/nexus/bin/nexus.vmoptions文件,根据服务器配置调整-Xms和-Xmx参数。
第五步:配置 systemd 服务
为了让 Nexus 能开机自启并能方便地进行服务管理,将其配置为系统服务是最佳实践。
- 创建服务文件:bash
sudo tee /etc/systemd/system/nexus.service > /dev/null <<EOF [Unit] Description=Nexus Repository Manager After=network.target [Service] Type=forking User=nexus Group=nexus LimitNOFILE=65536 ExecStart=/opt/nexus/bin/nexus start ExecStop=/opt/nexus/bin/nexus stop Restart=on-abort [Install] WantedBy=multi-user.target EOF配置说明:
Type=forking是 Nexus 服务推荐的启动方式。LimitNOFILE项用于提高 Nexus 能打开的文件描述符数量,避免出现警告。 - 加载并启动服务:bash
sudo systemctl daemon-reload sudo systemctl enable nexus.service sudo systemctl start nexus.service - 检查服务状态:bash首次启动可能需要几分钟来完成初始化,请耐心等待。
sudo systemctl status nexus.service
第六步:配置防火墙
默认情况下,Nexus 使用 8081 端口。如需从外部访问,必须在 CentOS 7 的防火墙 firewalld 中开放此端口。
bash
sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent
sudo firewall-cmd --reload
# 验证端口是否已开放
sudo firewall-cmd --list-ports云服务器特别提醒:如果你使用的是阿里云、腾讯云等云服务器,除了在操作系统内开放端口,还必须检查并放行对应云平台的“安全组”规则,将 8081 端口的入站规则设置为允许,否则无法从外部访问。
配置 Maven 仓库
安装并启动 Nexus 后,需要进行一些基本配置。
首次登录与设置密码:
- 打开浏览器,访问
http://你的服务器IP:8081。 - 默认用户名:
admin。 - 初始密码: 位于服务器文件
/opt/sonatype-work/nexus3/admin.password中。请使用sudo cat /opt/sonatype-work/nexus3/admin.password查看。 - 按界面提示修改一个强密码,初始密码文件随后会被自动删除。
- 打开浏览器,访问
配置阿里云代理仓库(重要): 为了加速国内 Maven 依赖包的下载,强烈建议将 Nexus 默认的中央仓库代理替换为阿里云镜像。
- 登录后,点击 设置图标(齿轮) -> Repository -> Repositories。
- 点击 Create repository,选择 maven2 (proxy)。
- Name 填写
aliyun-proxy。 - Remote storage 填写阿里云 Maven 公共仓库地址:
https://maven.aliyun.com/repository/public。 - 点击 Create repository 完成创建。
- 进入 maven-public (group) 仓库,在 Group 成员列表中,将
aliyun-proxy移至列表最顶部(高于central),然后保存。
常见问题排查
问题 1:启动失败,提示 “Detected execution as "root" user.”原因: 这是 Nexus 的安全警告,它阻止以 root 用户身份运行。 解决方法: 严格遵循 第三步 和 第五步 的指导,创建一个专用的
nexus用户,并在bin/nexus.rc文件和nexus.service文件中正确指定该用户。问题 2:启动成功但无法从浏览器访问原因: 通常是防火墙或安全组配置问题。 解决方法: 首先检查 第六步 中本地防火墙是否开放了 8081 端口。如果已开放但仍无法访问,请务必检查并放行云服务器的 安全组 规则。
问题 3:服务日志中出现 “Recommended file descriptor limit is 65536 but count is 4096.” 警告原因: Linux 默认的用户文件句柄限制 (4096) 低于 Nexus 的建议值 (65536)。 解决方法: 在
/etc/security/limits.conf文件中添加如下配置,然后重启服务器使其生效。bashnexus soft nofile 65536 nexus hard nofile 65536