当前位置: 首页 > news >正文

快速搭建Maven仓库服务

一、Nexus Repository Manager(推荐方案)

1. Docker快速部署

# 拉取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容器查找初始密码:

    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(全局配置):

    <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):

    <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
    mvn clean deploy
    
  • 验证仓库内容
    访问 http://localhost:8081/#browse/browse:maven-public,确认构件已上传。

二、Apache Archiva(轻量级方案)

1. 手动安装

# 下载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
    <mirrors><mirror><id>archiva</id><url>http://localhost:8080/repository/internal/</url><mirrorOf>*</mirrorOf></mirror>
    </mirrors>
    

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

1. 创建本地仓库目录

mkdir -p /opt/maven-repo
chmod -R 755 /opt/maven-repo

2. Nginx配置

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

3. Maven配置

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


在这里插入图片描述

http://www.dtcms.com/a/277767.html

相关文章:

  • 大话数据结构之 <顺序表> (C语言)
  • 学习:JS基础[5]对象
  • 【SpringAI Alibaba】基于 Redis 实现连续对话与向量存储
  • VsCode的LivePreview插件应用
  • [Java恶补day41] 226. 翻转二叉树
  • 基于springboot的大学公文收发管理系统
  • AB实验评估指标体系之【实验评估指标体系】
  • 015_引用功能与信息溯源
  • python 字典(Dictionary) vs. 集合(Set):它们是如何做到快速查找的?为什么字典的键(key)必须是不可变的?
  • S7-1200 与 ET200SP:PROFINET 设备关键数据 IP 地址、MAC 地址及 MRP 环状态获取
  • Datawhale AI 夏令营2025科大讯飞AI大赛<夏令营:用AI做带货视频评论分析>
  • 什么是渐进式框架
  • OpenVela 之 UI 应用开发
  • kettle从入门到精通 第102课 ETL之kettle xxl-job调度kettle的两种方式
  • 【Linux系统】进程状态 | 进程优先级
  • 手写std::optional:告别空指针的痛苦
  • java + groovy : 动态解析groovy脚本,并与java交互
  • MacBook Air M4 安装 VMware Fusion Pro
  • 问题记录:Fastjson序列化-空值字段处理
  • CA复习功课
  • Appdynamic 配置 PostgreSQL 收集器
  • 复习笔记 34
  • 【VSCode+LaTeX】科研写作环境搭建
  • 内存池(C++)v3 | 简历写法 | 相关面试题
  • 浏览器本地存储——使用localStorage实现电商系统商品收藏功能实战
  • 在网站学装机
  • SCTP协议网络编程
  • 从源码看Nginx:Nginx事件驱动架构深度拆解来了
  • linux上的软挂载操作方法
  • Docker 快速上手