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


相关推荐
青云交2 分钟前
Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频摘要快速生成与检索优化(345)
java·大数据·智能安防·视频摘要·检索优化·校园安防·低带宽传输
geovindu2 分钟前
Java: OracleHelper
java·开发语言·oracle
程序员奈斯4 分钟前
苍穹外卖—day1
java
今天又在摸鱼27 分钟前
SpringCloud
java·spring cloud
zqmattack1 小时前
XML外部实体注入与修复方案
java·javascript·安全
用户29044617194491 小时前
LangChain4J 1.0 全面教程:核心功能详解与实战代码示例
java
大葱白菜1 小时前
Java 函数式编程详解:从 Lambda 表达式到 Stream API,掌握现代 Java 编程范式
java·后端
大葱白菜1 小时前
Java 匿名内部类详解:简洁、灵活的内联类定义方式
java·后端
挑战者6668881 小时前
Idea如何解决包冲突
java·intellij-idea·jar
就是帅我不改1 小时前
深入理解 Java 中的线程池原理及最佳实践
java·后端