Maven搭建私服Nexus教程

搭建 Maven 私服最主流、稳定的方案是使用 Sonatype Nexus。不仅能加速依赖下载,还能统一管理内部组件,防止因外网问题导致构建失败。

目前最新的 Nexus 3.x 需要 JDK 11 环境,推荐使用 Linux 服务器部署。

第一步:安装 Nexus

这里有三种常见安装方式,建议优先选择 Docker 或压缩包。

方式一:Docker 安装(推荐)

这是最简单快捷的方式,适合快速搭建和测试。

bash 复制代码
# 运行 Nexus 容器
docker run -d --name nexus3 -p 8081:8081 --restart always sonatype/nexus3

如果需要持久化数据,可以挂载宿主机目录 -v /data/nexus:/nexus-data。

方式二:压缩包安装

适合需要精细控制参数的场景。

bash 复制代码
# 1. 下载并解压
wget https://download.sonatype.com/nexus/3/nexus-3.63.0-01-unix.tar.gz
tar -zxvf nexus-3.63.0-01-unix.tar.gz -C /opt/
# 2. 创建专用用户(不建议用root运行)
useradd nexus
chown -R nexus:nexus /opt/nexus /opt/sonatype-work
# 3. 修改启动用户配置
echo 'run_as_user="nexus"' > /opt/nexus/bin/nexus.rc
# 4. 启动(配置为系统服务更佳)
/opt/nexus/bin/nexus start

⚙️ 第二步:初始化与配置

访问控制台:浏览器打开 http://<你的服务器IP>:8081。

登录:默认用户名 admin。首次登录的初始密码需在服务器上查看:cat /opt/nexus/sonatype-work/nexus3/admin.password。

修改密码:登录后会强制要求修改密码,请妥善保管。

了解仓库类型(关键):

Nexus 默认会创建几个关键仓库,理解它们很重要:

maven-releases:宿主仓库。存放你团队自己发布的正式版(RELEASE)jar包。

maven-snapshots:宿主仓库。存放快照版(SNAPSHOT,即开发测试版)jar包。

maven-central:代理仓库。代理 Maven 中央仓库,当私服没有依赖时会从这里下载并缓存。

maven-public:仓库组。将以上仓库聚合在一起,供开发人员统一访问。

🔗 第三步:配置 Maven 连接私服

修改 Maven 的配置文件 settings.xml(通常在 ~/.m2/ 或 Maven 安装目录的 conf/ 下)。

配置下载镜像:在 标签中,让所有下载请求都指向私服。

xml 复制代码
<mirror>
    <id>nexus-public</id>
    <mirrorOf>*</mirrorOf> <!-- 拦截所有请求 -->
    <name>Nexus Public Mirror</name>
    <url>http://<私服IP>:8081/repository/maven-public/</url>
</mirror>

配置上传权限:在 标签中,设置发布时的账号密码。

xml 复制代码
<server>
    <id>nexus-releases</id> <!-- 与下方pom.xml中的id对应 -->
    <username>admin</username>
    <password>你的密码</password>
</server>
<server>
    <id>nexus-snapshots</id>
    <username>admin</username>
    <password>你的密码</password>
</server>

📤 第四步:发布项目到私服

在你需要上传的项目的 pom.xml 中,添加分发管理配置。

xml 复制代码
<distributionManagement>
    <repository>
        <id>nexus-releases</id> <!-- 与settings.xml中的server id对应 -->
        <url>http://<私服IP>:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>nexus-snapshots</id>
        <url>http://<私服IP>:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

配置完成后,在项目目录执行 mvn clean deploy,即可将 jar 包上传至私服。

小提示:Maven 会根据 pom.xml 里的 version 是否以 -SNAPSHOT 结尾,自动决定发布到 releases 还是 snapshots 仓库。

搭建完成后,团队所有成员配置好 Maven 的 settings.xml,即可共享依赖,大幅提升构建效率。如果过程中遇到连接问题,记得检查服务器防火墙是否开放了 8081 端口。

相关推荐
东北赵四10 小时前
关于Java泛型的知识点及其相关面试题
java·windows·python
姓蔡小朋友10 小时前
Java线程并发
java·开发语言·python
执笔画流年呀10 小时前
⾃动化测试常⽤函数
java·dubbo
疯狂打码的少年10 小时前
【面向对象】UML概述(基本构造块:事物/关系/图)
java
一水11 小时前
TTFT优化:一个方案的5次推倒重来
java·ai·状态模式
AC赳赳老秦11 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
磁爆步兵11 小时前
内存分区:程序运行的核心秘密
java·开发语言·jvm
流星白龙12 小时前
【Docker】4.NameSpace空间隔离实战
java·运维·docker
AI人工智能+电脑小能手12 小时前
【大白话说Java面试题 第207题】【09_Zookeeper篇】第8题:谈谈 ZooKeeper 的可靠性保障机制
java·zookeeper·高可用·可靠性·分布式系统
harmful_sheep12 小时前
maven多版本包导致java.lang.NoClassDefFoundError
java·maven