快速搭建Maven仓库服务

一、Nexus Repository Manager(推荐方案)

1. Docker快速部署

bash 复制代码
# 拉取Nexus3镜像
docker pull sonatype/nexus3

# 启动容器(端口映射为8081)
docker run -d -p 8081:8081 --name nexus sonatype/nexus3

# 查看启动日志
docker logs -f nexus

2. 初始配置

  • 访问管理界面

    打开浏览器访问 http://localhost:8081,点击右上角 Sign in

  • 获取默认密码

    进入Nexus容器查找初始密码:

    bash 复制代码
    docker exec -it nexus sh
    cat /nexus-data/admin.password

    输入密码后,按提示修改为自定义密码。

  • 创建Maven仓库

    1. 点击 SettingsRepositoriesCreate Repository
    2. 选择 Maven2 (hosted) 类型,配置:
      • Name : maven-releases(发布库)或 maven-snapshots(快照库)
      • Version Policy : ReleaseSnapshot
      • Deployment Policy : Allow Redeploy(允许重复部署)

3. Maven集成配置

  • 修改 settings.xml(全局配置):

    xml 复制代码
    <settings>
      <servers>
        <server>
          <id>nexus</id>
          <username>admin</username>
          <password>自定义密码</password>
        </server>
      </servers>
      <mirrors>
        <mirror>
          <id>nexus</id>
          <mirrorOf>*</mirrorOf>
          <url>http://localhost:8081/repository/maven-public/</url>
        </mirror>
      </mirrors>
    </settings>
  • 项目 pom.xml 配置(发布到Nexus):

    xml 复制代码
    <distributionManagement>
      <repository>
        <id>nexus</id>
        <url>http://localhost:8081/repository/maven-releases/</url>
      </repository>
      <snapshotRepository>
        <id>nexus</id>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
      </snapshotRepository>
    </distributionManagement>

4. 部署与验证

  • 部署构件到Nexus

    bash 复制代码
    mvn clean deploy
  • 验证仓库内容
    访问 http://localhost:8081/#browse/browse:maven-public,确认构件已上传。

二、Apache Archiva(轻量级方案)

1. 手动安装

bash 复制代码
# 下载Archiva
wget https://archive.apache.org/dist/archiva/2.2.9/binaries/apache-archiva-2.2.9-bin.zip
unzip archiva-2.2.10-standalone.zip
cd archiva-2.2.10/bin

# 启动服务(调试模式)
./archiva-debug.sh run

2. 访问管理界面

  • 打开 http://localhost:8080/archiva,默认账号 admin/admin
  • 创建Maven仓库(hosted类型),配置代理仓库(如阿里云Maven中央仓库)。

3. Maven集成

  • 修改 settings.xml

    xml 复制代码
    <mirrors>
      <mirror>
        <id>archiva</id>
        <url>http://localhost:8080/repository/internal/</url>
        <mirrorOf>*</mirrorOf>
      </mirror>
    </mirrors>

三、手动搭建(Nginx+文件系统)

1. 创建本地仓库目录

bash 复制代码
mkdir -p /opt/maven-repo
chmod -R 755 /opt/maven-repo

2. Nginx配置

nginx 复制代码
server {
    listen 80;
    server_name localhost;
    location / {
        root /opt/maven-repo;
        autoindex on;  # 启用目录列表
    }
}

3. Maven配置

  • 修改 settings.xml

    xml 复制代码
    <settings>
      <localRepository>/opt/maven-repo</localRepository>
      <mirrors>
        <mirror>
          <id>local-repo</id>
          <url>http://localhost/</url>
          <mirrorOf>*</mirrorOf>
        </mirror>
      </mirrors>
    </settings>

四、方案对比与推荐

方案 适用场景 优点 缺点
Nexus 企业级/团队级私有仓库 功能全面,支持代理、权限管理、CI/CD集成 资源占用较高,学习成本中等
Archiva 小型团队/个人开发者 轻量级,配置简单 社区活跃度低,扩展性有限
手动搭建 临时测试/极简需求 零成本,快速上手 缺乏高级功能(权限、缓存加速)

最终推荐

优先选择 Nexus Repository Manager,通过Docker部署实现开箱即用,兼顾企业级功能与易用性。若资源有限,可尝试手动搭建方案作为临时解决方案。


相关推荐
2501_933923255 分钟前
Spring Bean作用域揭秘:单例、原型、请求与会话的区别
java·后端·spring·java-ee
学编程就要猛22 分钟前
基于Spring AI 的智能聊天机器人
java·spring ai·chat robot
修炼室25 分钟前
Java开发工程师笔试经验贴【高频知识】
java
木井巳37 分钟前
【记忆化搜索】最长递增子序列
java·算法·leetcode·深度优先·剪枝·推荐算法
杨杨杨大侠44 分钟前
知识库已经有了,Java 程序员还要做什么?Spring AI RAG 实战
java·openai·ai编程
伊信1 小时前
Spring AI 基础学习与应用
java·后端
夜郎king1 小时前
基于 Java + Playwright 实现网站自动访问与数据采集(以腾讯云开发者社区为例)
java·playwright·网页数据获取
Anastasiozzzz1 小时前
重新定义 Agent 基建:Redis 在现代 AI 与智能体系统中的工程实践
java·人工智能·redis·ai
careathers1 小时前
【数据结构】队列
java·数据结构
步行cgn1 小时前
Spring 通过 factory-method 实例化 Bean 详解与常见错误排查
java·后端