使用 Docker 搭建 Maven 私服

1. 部署 Nexus 容器

shell 复制代码
# 创建数据目录
mkdir -p /opt/nexus/sonatype-work
chmod 777 /opt/nexus/sonatype-work

# 拉取并运行 Nexus
docker run -d \
  --name nexus \
  -p 8081:8081 \
  -p 8082:8082 \
  -v /opt/nexus/sonatype-work:/nexus-data \
  --restart=always \
  sonatype/nexus3:latest

参数说明:

  • -d: 后台运行
  • --name nexus: 容器名称
  • -p 8081:8081: Web 管理界面端口
  • -p 8082:8082: Docker 仓库端口(可选)
  • -v /opt/nexus/sonatype-work:/nexus-data: 数据持久化
  • --restart=always: 开机自启

2. 获取管理员密码

shell 复制代码
docker exec nexus cat /nexus-data/admin.password

访问 http://IP:8081/,使用账号 admin 和初始密码登录,首次登录需修改密码。

3. 配置阿里云代理仓库

  1. 创建代理仓库:S ettings → Repository → Repositories → Create repository → maven2 (proxy)
配置项 说明
Name aliyun-proxy 仓库名称
Remote storage https://maven.aliyun.com/repository/public 阿里云镜像地址
Blob store default 存储区域
  1. 添加到仓库组 :编辑 maven-public 仓库组,添加 aliyun-proxy 并调整优先级(阿里云优先)。

4. Maven 配置

settings.xml

xml 复制代码
<settings>
  <!-- 本地仓库路径 -->
  <localRepository>/path/to/your/repo</localRepository>
  <pluginGroups>
  </pluginGroups>
  <proxies>
  </proxies>

  <!-- 配置私服访问凭证 -->
  <servers>
    <server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>
  <!-- 配置镜像,将所有请求转发到私服 -->
  <mirrors>
    <mirror>
      <id>nexus</id>
      <name>Nexus Public Mirror</name>
      <url>http://YOUR_IP:8081/repository/maven-public/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
  <!-- 配置仓库(可选,如果使用镜像则不需要) -->
  <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://YOUR_IP:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>
  <!-- 激活配置 -->
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

项目 pom.xml

xml 复制代码
<distributionManagement>
  <repository>
    <id>nexus</id>
    <url>http://YOUR_IP:8081/repository/maven-releases/</url>
  </repository>
  <snapshotRepository>
    <id>nexus</id>
    <url>http://YOUR_IP:8081/repository/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

注意 :将 YOUR_IP 替换为实际服务器 IP 地址。

相关推荐
用户233376852181 小时前
Docker 端口"时通时不通"的排查实战
docker
做个文艺程序员1 小时前
Linux第22篇:用Docker容器化你的Java SaaS应用:一次构建,随处运行
java·docker·容器
梦梦代码精3 小时前
基于ThinkPHP6 + Vue3的家政预约系统全解析:从LBS定位到自动派单的完整实现
java·docker·开源·php·代码规范
小的博客4 小时前
windows下安装Docker Desptop
运维·docker·容器
李迟4 小时前
我的docker随笔48:Docker版本号演进史
docker
Zhu7584 小时前
在k8s环境部署Apache zookeeper3.9.5,高可用,多pod
容器·kubernetes·apache
飞雪金灵5 小时前
mac电脑 Maven下载安装和配置环境变量
macos·maven·maven下载安装·mac电脑环境
阿拉雷️5 小时前
部署实战】Docker + AI Agent:让AI一键部署Spring Boot到服务器,从打包到上线只要一条指令
人工智能·spring boot·docker
雨声不在5 小时前
macos 12使用docker
macos·docker·容器
运维大师6 小时前
【K8S 运维实战】07-Pod生命周期与故障排查
运维·容器·kubernetes