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


相关推荐
NE_STOP7 小时前
Docker--Docker Swarm集群
java
两年半的个人练习生^_^7 小时前
JMM 进阶:彻底理解 CAS 实现原理
java·开发语言
wuminyu7 小时前
Java锁机制之park和unpark源码剖析
java·linux·c语言·jvm·c++
W_LuYi1858 小时前
手撸极简zkEVM验证器:RISC-V电路实践
java·risc-v
AI人工智能+电脑小能手8 小时前
【大白话说Java面试题 第102题】【并发篇】第2题:volatile 能否保证线程安全?
java·安全·面试
KobeSacre8 小时前
JUC 概述
java·开发语言
小bo波8 小时前
形式化方法 × UML
java·软件工程·uml·面向对象·形式化方法·tla+
就叫_这个吧9 小时前
IDEA中Javaweb项目创建+servlet,实现简单的信息录入获取
java·servlet·intellij-idea·web
程序员Jelena9 小时前
接口调用的代码实现:从入门到实战
java
代码钢琴师9 小时前
Throttle4j 快速上手教程
java