快速搭建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. 点击 Settings → Repositories → Create Repository。
    2. 选择 Maven2 (hosted) 类型,配置:
      • Name : maven-releases(发布库)或 maven-snapshots(快照库)
      • Version Policy : Release 或 Snapshot
      • 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部署实现开箱即用,兼顾企业级功能与易用性。若资源有限,可尝试手动搭建方案作为临时解决方案。


相关推荐
子非鱼a3 小时前
【WEB】EasySSTI
java·开发语言·前端
m0_587383003 小时前
深圳 24 小时自助健身房系统软件开发实战指南与案例解析
java·spring boot·小程序·架构·需求分析
Nebula_g3 小时前
JavaSE项目实践:红包雨-线程池/线程
java·开发语言
小羊没烦恼!3 小时前
jQuery1.5的改进细节
java·服务器·开发语言·前端·c#
霸道流氓气质3 小时前
Prompt 版本控制与 A/B 测试实战:语义版本管理、一致性哈希分流与 Thompson Sampling 的 Java 生产级实现
java·prompt·哈希算法
嵌入式er4 小时前
影石系统组 一二面OC面经
java·开发语言
春涧草茶4 小时前
慢就是快12-12手动抛出异常
java·linux·前端
企业数字化笔记5 小时前
AI工具参数很多怎么办?预设、表单校验、危险参数与配置审计
java·spring boot·python·音视频
huaweichenai5 小时前
spring boot对接阿里短信
java·spring boot
KING-WU5125 小时前
Linux 工具之Make 与 Makefile
java·linux·服务器