【安装配置】【搭建本地Maven私服】

搭建自己的 Maven 私服(私有仓库)主要有几种方式,最常用的是使用 Nexus Repository ManagerApache Archiva 。下面我给你整理一个详细步骤指南,以 Nexus OSS 为例,因为它是目前最流行、社区支持最好的方案。


一、准备工作

  1. 服务器环境

    • 可以是本地机器,也可以是云服务器。

    • 推荐内存 2GB 以上,磁盘空间根据存储需求而定。

    • 安装 Java 11+(Nexus 3 需要 Java 11)。

  2. 下载 Nexus

  3. 解压安装

    复制代码
    tar -zxvf nexus-3.x.x-xx-unix.tar.gz
    mv nexus-3.x.x-xx /opt/nexus
    cd /opt/nexus

二、配置 Nexus

  1. 创建运行用户

    复制代码
    useradd nexus
    chown -R nexus:nexus /opt/nexus /opt/sonatype-work
  2. 修改启动用户

    编辑 /opt/nexus/bin/nexus.rc

    复制代码
    run_as_user="nexus"
  3. 启动 Nexus

    复制代码
    cd /opt/nexus/bin
    ./nexus start
    ./nexus status   # 查看状态

三、创建 Maven 仓库

  1. 登录 Nexus Web UI

    • 默认管理员:admin / admin.password
  2. 创建仓库

    • 进入 "Settings" → "Repositories" → "Create repository"

    • 选择 maven2 (hosted) → 选择 ReleaseSnapshot

    • 设置 Name ,如 maven-releasesmaven-snapshots

    • 保存

  3. 创建组仓库(可选)

    • 可以将多个 hosted 仓库合并到组仓库,统一访问。

    • 创建 maven2 (group),添加你之前创建的仓库。


四、配置 Maven 使用私服

编辑本地 Maven 的 settings.xml(通常在 ~/.m2/settings.xml):

复制代码
<settings>
  <mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://your-server:8081/repository/maven-public/</url>
    </mirror>
  </mirrors>

  <servers>
    <server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>
</settings>
  • mirrorOf 可以设置 * 表示替代所有仓库。

  • url 使用你的 Nexus 仓库地址。

  • servers 配置认证信息,用于上传 artifact。


五、上传 Maven Artifact

  1. 使用 Maven deploy 插件

    复制代码
    <distributionManagement>
      <repository>
        <id>nexus</id>
        <url>http://your-server:8081/repository/maven-releases/</url>
      </repository>
      <snapshotRepository>
        <id>nexus</id>
        <url>http://your-server:8081/repository/maven-snapshots/</url>
      </snapshotRepository>
    </distributionManagement>
  2. 执行上传

    复制代码
    mvn clean deploy
    • Artifact 会上传到私服的指定仓库。

六、优化与安全

  1. 绑定域名和 HTTPS

    • 配置反向代理 Nginx 或 Apache。

    • 使用 Let's Encrypt 免费 SSL。

  2. 权限管理

    • 创建不同用户和角色,限制不同项目访问权限。
  3. 定期备份

    • Nexus 可以直接备份仓库数据目录。

💡 小提示

  • 对于企业内部项目,建议至少创建一个 release 仓库和一个 snapshot 仓库。

  • 也可以搭建 Artifactory OSS,功能类似,但 Nexus 社区版已经足够大多数需求。


相关推荐
老K的Java兵器库9 分钟前
对象创建源码追踪:从 new 指令到 JVM 内部实现
java·jvm
小学鸡!9 分钟前
spring boot实现接口数据脱敏,整合jackson实现敏感信息隐藏脱敏
java·spring boot
豆沙沙包?25 分钟前
2025年--Lc187--120. 三角形最小路径和(多维动态规划,矩阵)--Java版
java·矩阵·动态规划
左灯右行的爱情42 分钟前
ImportCandidates 类详细解析
java·spring boot
老K的Java兵器库1 小时前
Metaspace OOM 排查实录:一次 Spring 热部署爆掉 256 M 元空间
java·jvm·spring
啦啦9117141 小时前
提供一些准备Java八股文面试的建议
java·开发语言·面试
考虑考虑1 小时前
JDK25中的StableValue
java·后端·java ee
杯莫停丶2 小时前
设计模式之:简单工厂模式
java·设计模式·简单工厂模式
Lucky_Turtle2 小时前
【Java Xml】dom4j写入XML
xml·java·python
superlls2 小时前
(定时任务)接上篇:定时任务的分布式执行与分布式锁使用场景
java·分布式·后端