【安装配置】【搭建本地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 社区版已经足够大多数需求。


相关推荐
虹科网络安全25 分钟前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje1 小时前
Java语法进阶
java·开发语言·jvm
rKWP8gKv71 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫1 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287921 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本1 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
yaoxin5211232 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
极客先躯4 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户60648767188964 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java
我命由我123454 小时前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime