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

相关推荐
無a伟17 分钟前
RabbitMq高级特性:TTL,死信队列,延迟队列
java·分布式·rabbitmq
长谷深风11127 分钟前
Agent 跑了 30 分钟宕机,如何从断点继续?
java·大数据·人工智能·ai·大模型·memory·aiagent
慧都小妮子27 分钟前
DevExpress Java 文档处理 API 免费 CTP:PDF、PowerPoint、条码与跨平台部署
java·pdf·powerpoint·devexpress·文档处理·条码生成
泡海椒30 分钟前
告别反射低效:JQuick-Java ASM动态调用链性能优化实战
java·python·性能优化
土司大王40 分钟前
LeetCode 17 电话号码的字母组合:Java 回溯模板、多叉决策树与复杂度分析
java·leetcode·决策树
CoderYanger1 小时前
前端基础——JavaScript(WebAPI)代码案例
java·开发语言·前端·javascript·css·前端框架·html5
Nuanyt1 小时前
JUC常见核心知识梳理02 AQS ReentrantLock CAS 原子类 线程池
java
CodeStats1 小时前
【Java数据类型】Java底层数据类型原理(上):基本类型、转换与封装核心
java·数据类型·string·封装·转换
陈皮波比茶1 小时前
SpringCloudAlibaba
java·spring cloud·微服务
重生之小比特1 小时前
【Java SE】程序逻辑控制
java·开发语言·python