快速搭建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部署实现开箱即用,兼顾企业级功能与易用性。若资源有限,可尝试手动搭建方案作为临时解决方案。


相关推荐
小比特_蓝光11 分钟前
算法篇二----二分查找
java·数据结构·算法
田梓燊26 分钟前
leetcode 56
java·算法·leetcode
scan72435 分钟前
龙虾读取session历史消息
java·前端·数据库
better_liang39 分钟前
每日Java面试场景题知识点之-分布式事务
java·微服务·seata·分布式事务·一致性·saga·tcc
kvo7f2JTy1 小时前
JAVA 设计模式
java·开发语言·设计模式
仍然.1 小时前
多线程---阻塞队列收尾和线程池
java·开发语言·算法
鱼鳞_1 小时前
Java学习笔记_Day22
java·笔记·学习
维基框架1 小时前
Anthropic 禁止 OpenClaw!一场技术领域的“打斗”
java
__土块__1 小时前
一次电商秒杀系统架构评审:从本地锁到分布式锁的演进与取舍
java·redis·高并发·分布式锁·redisson·架构设计·秒杀系统
她说..2 小时前
Java 注解核心面试题
java·spring boot·spring·spring cloud·自定义注解