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 端口。

相关推荐
码哥字节5 分钟前
升到 Spring Boot 4.1,虚拟线程开了,HikariCP 连接池却崩了
java·springboot·claude code
devilnumber6 分钟前
java自定义事件处理器极简版:「外卖点餐」场景
java·开发语言
J2虾虾9 分钟前
Spring AI Alibaba - 智能体作为工具(Agent Tool)
java·人工智能·spring
Hesionberger9 分钟前
巧用异或找出唯一数字(多解)
java·数据结构·python·算法·leetcode
铁链鞭策大师10 分钟前
javaEE之多线程(2)
java·前端·java-ee
Devin~Y12 分钟前
从内容社区到AIGC客服:Spring Boot、Redis、Kafka、K8s、RAG的三轮大厂Java面试对话(附标准答案)
java·spring boot·redis·spring cloud·kafka·kubernetes·micrometer
それども15 分钟前
怎么理解TCP的状态
java·网络·网络协议·tcp/ip·dubbo
Xzh042316 分钟前
Redis黑马点评 实战复盘与面试高频考点详解
java·数据库·redis·面试
YOU OU20 分钟前
案例综合练习-博客系统
java·开发语言
瑞雪兆丰年兮30 分钟前
[从0开始学Java|第十八、十九天]API(常见API&对象克隆&正则表达式)
java·开发语言