使用 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 地址。

相关推荐
InfinitePlus19 分钟前
Docker MySQL搭建一主一从
mysql·docker
Wzx1980123 小时前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker
CodeDevMaster3 小时前
关于PaddleOCR-VL部署与使用说明
docker·llm
Kismet_nvi3 小时前
《Kubernetes Service 进阶、kube-proxy 与 Ingress 实战精要》
云原生·容器·kubernetes
Ghost Face...5 小时前
龙芯Docker全流程:安装到离线迁移实战
java·docker·eureka
Crazy________5 小时前
Redis03:持久化存储,大key分析,主从复制及哨兵模式
数据库·redis·容器
2401_834636996 小时前
从零吃透 K8s 网络:ServiceIngressMetalLB 实操手册
网络·容器·kubernetes
JavaPub-rodert8 小时前
我又把自己的 Go 后台管理系统升级了一遍:文件管理、2GB 上传、私有文件预览、Docker 镜像全安排上了
开发语言·docker·golang·shiyuadmin
爱码少年8 小时前
嗯,腾讯云个人小站Docker镜像下载功能已下线,压力给到阿里云镜像站
docker
Zhu7589 小时前
在docker环境部署frp
运维·docker·容器