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

使用 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. 配置阿里云代理仓库

  1. 创建代理仓库:S ettings → Repository → Repositories → Create repository → maven2 (proxy)
配置项说明
Namealiyun-proxy仓库名称
Remote storagehttps://maven.aliyun.com/repository/public阿里云镜像地址
Blob storedefault存储区域
  1. 添加到仓库组:编辑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 地址。

http://www.jsqmd.com/news/695516/

相关文章:

  • Playwright新标签页处理技巧
  • 日系润滑油巨头加速中国本土化布局 出光润滑油经销商大会释放三大信号
  • Meilisearch MCP服务器:连接AI助手与搜索引擎的实践指南
  • ChatGPT提示工程:原理、技巧与实践指南
  • 从零到一:我的达梦DCA认证通关实战与核心技能拆解
  • 同一个 Claude,有人 2 倍效率,有人 100 倍——差别在一张索引卡片
  • Jenkins 共享库的变量管理
  • 500kg机械臂出口包装:为什么我们最终放弃了木箱?——重型纸箱的承重结构与跌落实测
  • 免费的AI提示词生成网站推荐:为什么我最终只留下了 Crun
  • 彩虹云商城系统源码:全开源免发卡平台,支持二级商品分类与一站式部署
  • 我们如何构建 Elasticsearch simdvec,使向量搜索成为世界上最快之一
  • 从日志收集到数据处理流水线:聊聊Java管道(Pipes)在真实项目里的那些妙用
  • Claude Code插件与技能生态:从AI助手到智能体操作系统的进化
  • 别浪费那块旧硬盘!手把手教你为J1900软路由扩展存储并安装ESXi 6.7
  • 谷歌表格批量重命名文件指南
  • 机器学习播客学习指南:理论与实践结合
  • 泡泡玛特王宁:我们想成为树一样的企业 把根扎得足够深
  • LSTM时序预测中的特征工程实战与优化策略
  • C语言总结复习
  • 《AI大模型应用开发实战从入门到精通共60篇》008、LangChain框架入门:构建LLM应用的第一块积木
  • 从‘迁就’到‘协同’:深入理解PCIe设备枚举时,MPS与MRRS的‘谈判’过程与系统影响
  • 从零实战:2026 SMT工厂数字孪生开发选型
  • Claude Code进阶指南:从模块化配置到自动化工作流实战
  • WarcraftHelper终极指南:5分钟解决魔兽争霸3现代兼容性问题
  • CefFlashBrowser:如何在2024年完美播放Flash游戏和课件的终极指南
  • 从 LangChain 到 LangGraph:为什么你的 Agent 需要图结构
  • Ubuntu 20.04远程桌面实战:Vino和TigerVNC到底怎么选?从配置到性能的深度对比
  • SMT产线数字孪生:2026选型避坑实战
  • UML 类图及六大关系详解:继承、实现、依赖、关联、聚合、组合(Java+类图)
  • PostgreSQL libpq 由于整数回绕导致内存分配不足 HGVE-2025-E011