使用 Docker 搭建 Maven 私服
1. 部署 Nexus 容器
# 创建数据目录mkdir-p/opt/nexus/sonatype-workchmod777/opt/nexus/sonatype-work# 拉取并运行 Nexusdockerrun-d\--namenexus\-p8081:8081\-p8082: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. 获取管理员密码
dockerexecnexuscat/nexus-data/admin.password访问http://IP:8081/,使用账号admin和初始密码登录,首次登录需修改密码。
3. 配置阿里云代理仓库
- 创建代理仓库:S ettings → Repository → Repositories → Create repository → maven2 (proxy)
| 配置项 | 值 | 说明 |
|---|---|---|
| Name | aliyun-proxy | 仓库名称 |
| Remote storage | https://maven.aliyun.com/repository/public | 阿里云镜像地址 |
| Blob store | default | 存储区域 |
- 添加到仓库组:编辑
maven-public仓库组,添加aliyun-proxy并调整优先级(阿里云优先)。
4. Maven 配置
settings.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
<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 地址。
