Maven 私服怎么搭:从安装到配置settings.xml 以及托管、代理、聚合仓

简介: 私有化部署后接 Maven:建 HOSTED/PROXY/GROUP,配 settings.xml 与 pom.xml,完成 resolve、deploy,并处理 401/409。

构建越来越慢、内部 jar 靠网盘传、外网一抖就 Could not transfer artifact——多半不是 Maven 坏了,而是私服还没接对:服务没起来、仓库类型不对、settings.xml / pom.xml 的 id 对不上,或令牌没配进密码位。

下面用 AngusRepo 社区版私有化部署,按操作顺序走完一遍:安装 → 建仓与令牌 → settings.xml 拉取 → pom.xml 发布 → 验证。命令里的主机写成 repo.example.com,换成你的域名即可。更细的 401/409 见 Maven deploy 失败排查。

1. 安装(得到可打开的控制台)

前提:Docker Engine + Compose v2;约 2 核 / 4 GB;放行 80;gm.example.com 与 repo.example.com 已解析到本机(试用可写 /etc/hosts)。完整步骤见 第一次跑通。

curl --fail --location --progress-bar -o AngusRepo-Community-1.0.0.zip \
  https://repo.anguskit.com/raw/raw-public/AngusKit/repo/AngusRepo-Community-1.0.0.zip
unzip AngusRepo-Community-1.0.0.zip
cd AngusRepo-1.0.0
./install.sh

向导与快速开始对齐:Compose;Access 选 2(捆绑反代);TLS 选 4(HTTP :80);Database 选 Compose 内 MySQL;Public DNS name 填后缀如 example.com。出现 Install finished. 后:

./bin/angusctl.sh doctor   # 看到 doctor: OK

浏览器打开 http://gm.example.com/ 登录,再打开 http://repo.example.com/。Windows 用 curl.exe + .\install.bat。需要 HTTPS 时见 安装与部署。

下文默认 HTTP 私有化,URL 写成 http://repo.example.com/...。上了可信证书后,把协议改成 https:// 即可。控制台能打开后,先建仓库和令牌,再改客户端配置。

2. 建仓、令牌与拓扑

推送(mvn deploy)只能进 HOSTED;PROXY、GROUP 只读。在 http://repo.example.com/ 创建(名称可自定,后面配置保持一致):

仓库名示例 类型 干什么
maven-releases HOSTED 正式版;建议禁止覆盖
maven-snapshots HOSTED SNAPSHOT;允许同版本覆盖
maven-central-proxy PROXY 代理 Maven Central(远程 URL:https://repo1.maven.org/maven2/)
maven-group GROUP 统一拉取入口;成员顺序 release → snapshot → proxy

Maven 私服拓扑:deploy 到 HOSTED,resolve 经 GROUP 聚合 releases、snapshots 与 PROXY
GROUP 成员顺序建议 releases → snapshots → proxy:制品二进制按 first-match;maven-metadata.xml 版本列表合并各成员已登记版本。开发者只配一个拉取 URL;Release 与 SNAPSHOT 分仓,清理策略与是否可覆盖也不一样。

同一控制台继续准备:

  • [ ] 创建访问令牌(只显示一次,立刻保存)
  • [ ] CI 对两个 HOSTED 有 Write;开发者对 maven-group 有 Read
  • [ ] GROUP 成员顺序确认为 releases → snapshots → central-proxy
export REPO_USER="admin"              # 控制台用户名,不是令牌名称
export REPO_TOKEN="your_access_token" # 密码位一律填令牌
export REPO_HOST="repo.example.com"   # 换成你的 repo.<域名>

具体路径以控制台「接入配置」为准;字段说明见 Maven 格式手册。

3. 拉取:settings.xml

用 mirror 把依赖请求指到 GROUP。保存为工程旁的 settings.xml,或合并进 ~/.m2/settings.xml 的 <servers> / <mirrors>,不要整文件覆盖。

<settings>
  <mirrors>
    <mirror>
      <id>angus-maven-group</id>
      <mirrorOf>*</mirrorOf>
      <url>http://repo.example.com/maven/maven-group/</url>
    </mirror>
  </mirrors>
  <servers>
    <server>
      <id>angus-maven-group</id>
      <username>${env.REPO_USER}</username>
      <password>${env.REPO_TOKEN}</password>
    </server>
    <server>
      <id>angus-maven-releases</id>
      <username>${env.REPO_USER}</username>
      <password>${env.REPO_TOKEN}</password>
    </server>
    <server>
      <id>angus-maven-snapshots</id>
      <username>${env.REPO_USER}</username>
      <password>${env.REPO_TOKEN}</password>
    </server>
  </servers>
</settings>

密码位填令牌。<server> 的 <id> 必须和下面 pom.xml / mirror 里用的 id 完全一致(区分大小写),对不上最常见就是 401。

4. 发布:pom.xml

发布目标必须是 HOSTED,不能指向 GROUP 或 PROXY。

<distributionManagement>
  <repository>
    <id>angus-maven-releases</id>
    <url>http://repo.example.com/maven/maven-releases/</url>
  </repository>
  <snapshotRepository>
    <id>angus-maven-snapshots</id>
    <url>http://repo.example.com/maven/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

5. 验证闭环

# 拉取:走 GROUP;第一次可能回源,第二次应走 PROXY 缓存
mvn -s settings.xml dependency:resolve

# 发布:进对应 HOSTED
mvn -s settings.xml clean deploy

控制台制品列表应能看到新版本;再从 GROUP 解析同一坐标,应能拉到。CI 里同样注入 REPO_USER / REPO_TOKEN,并用同一份 settings.xml。流水线编排可另见 Jenkins 构建测试发布。Gradle 怎么接同一套私服见后续 Gradle 专文。

6. 日常维护(resolve / deploy 跑通之后)

清理 SNAPSHOT — 每个制品保留最近 N 个版本,先 Dry Run,见 清理策略。Release 仓保持不可变,重复 deploy 会 409。

PROXY 冷缓存 — 首次拉中央仓依赖会慢,属正常;可对高频依赖做预热。

入库检查 — 上传时有轻量门禁;需要更细的漏洞 / 许可证分析时再接外部扫描。打开阻断前先处理误报,见 入库门禁与 SBOM。

报错速查

症状 常见原因 怎么处理
401 Unauthorized server id 与 pom/mirror 不一致,或令牌过期 核对 id;密码位改令牌;见 deploy 排查
409 Conflict 正式版重复 deploy 升版本号,不要覆盖 Release
中央仓有包却 404 GROUP 成员顺序错,或 PROXY 回源失败 查成员顺序与 PROXY 健康检查
一直拿到旧 SNAPSHOT 本地 ~/.m2 缓存 mvn -U,或清掉对应目录
首次拉取很慢 PROXY 冷缓存 正常;可预热高频依赖

字段级说明见 Maven 格式手册;更多排错见 故障排查手册。

FAQ

能不能 deploy 到 GROUP?

不能。GROUP / PROXY 只读,发布必须指向 HOSTED。

Release 和 SNAPSHOT 为什么要分仓?

正式版应不可变;SNAPSHOT 允许同版本覆盖,清理策略也不同。混在一个仓里,权限和清理都难做干净。

settings.xml 里 mirror 的 id 要和 server 一致吗?

要。mirror、distributionManagement 与对应 <server> 的 id 必须对齐,Maven 才会带上认证。

小结

  • 安装并打开控制台 → 建两个 HOSTED + PROXY + GROUP → 发令牌。
  • 拉取走 GROUP(settings.xml mirror);发布走 HOSTED(pom.xml distributionManagement)。
  • id 对齐 + 令牌进密码位,是避免 401 的关键;Release 不要重复 deploy。
  • 跑通后配 SNAPSHOT 清理与 PROXY 预热,避免磁盘和冷缓存拖慢构建。

参考文章

相关文章
|
21天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
9129 29
|
20天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
4302 16
|
20天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
2363 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
8天前
|
存储 人工智能 并行计算
大模型本地部署终端选型方法论:以 Qwen3.8-27B 为例的四档分层完整流程
本文提出一套大模型本地部署终端选型方法论:定约束、定档位、定框架、定参数四步决策法,配合入门、主力、质量、无损四档分层模型。以 Qwen3.8-27B 实测数据为例,逐环节解读显存、带宽、存储、散热、系统、预算等要素,给出面向不同预算的优选方案、决策自查清单与市场观察框架。文末前瞻 AI 笔记本的 CPU+GPU 与统一内存两条路线,论证四步决策法在新品类上的延续性。
|
6天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型深度拆解:原理解读、实战测评与保姆级落地教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为**System One Model(系统一模型)**,对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
520 1
|
14天前
|
人工智能 Linux 开发者
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
Codex是OpenAI推出的AI编程智能体,可读取本地项目、理解需求并自动修改代码。支持桌面GUI、命令行(CLI)及VS Code/Cursor插件三种形态,覆盖可视化操作、终端高效开发与编辑器无缝集成场景,助开发者用自然语言驱动编码全流程。(239字)
1139 2
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
|
9天前
|
人工智能 Linux Windows
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面
千问办公(QwenWork)是阿里云推出的AI智能办公平台,支持网页端直接使用及Windows/Mac/Linux客户端下载。提供PPT生成、财报分析、网页搭建等AI功能,个人版免费,企业版198元/席/月。详情见官网qwenwork.cn或阿里云产品页。
1089 0
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面