用途:当 Maven SNAPSHOT 看似已上传、但新机器或空缓存消费者仍解析失败(缺 parent、BOM、聚合 POM、传递模块、metadata/认证等)时,用于诊断并恢复发布。核心原则:发布成功不由本地构建或上传证明,而由新 Maven 本地仓库的远程解析证明。计划中的正常发布应使用 maven-release-validation,本技能用于发布已不一致之后。
主要能力:从空缓存消费者失败中诊断远端不完整的 SNAPSHOT 图;恢复缺失的 parent、BOM、聚合 POM、模块、classifier 或传递制品;跨维护线作业,同时保留各线的 JDK、Maven、POM 与仓库契约。
恢复循环:1) 建立矩阵,记录分支、期望坐标/版本、JDK、Maven、仓库/服务器 ID、消费者入口与必需的正/负检查,各行独立处理;2) 远程探测,优先运行已有验证器,否则创建最小的外部消费者导入已发布的 parent/BOM 并解析代表性生产依赖,每分支/每次探测使用新建的本地仓库并对 SNAPSHOT 使用 -U;3) 分类首个失败,区分认证/metadata 传输失败、缺 POM、缺二进制/classifier、传递缺口、校验和损坏与源码/构建失败,首个未解析坐标是证据而非必然是根目标;4) 映射来源,证明该坐标属于哪个源仓库、分支、模块、打包与构建输出,上传前核对有效/原始 POM 的 GAV 并检查本地或暂存内容;5) 最小回填,仅发布缺失坐标及必需的附属制品,pom 打包以 POM-only 上传,若 deploy-file 拒绝本地仓库内文件,则把已核实制品集复制到新的暂存目录,保留扩展名/classifier 后再上传;6) 从另一个空缓存重新探测,不得把诊断缓存当作验收证据,出现更深层失败说明有进展,应分类并重复;7) 闭合依赖图,要求所有配置的正向消费者解析/构建成功,负向消费者按预期因过时坐标或策略失败,并尽量记录远端 metadata/时间戳与校验和。
使用限制与不可协商门禁:回填或发布远程制品需用户授权与精确目标坐标;仓库 URL/服务器 ID 与可用 settings 须在不泄露密钥前提下提供或可发现;安全、CI、签名或仓库策略豁免必须显式记录为跳过/豁免,不得视为通过。不得通过修改源码兼容性来掩盖缺失的远程制品;未经策略和用户明确允许不得重发 release 或覆盖不可变坐标;未经授权不得初始化发布工具、切换分支、安装软件或编辑仓库配置。每分支与每次验收重跑使用独立本地仓库路径;保留各分支工具链,不得让 Java 8 线消费 Java 17 输出或静默替换 Maven 版本;多线 reactor 部署应串行,首次部分失败即停止;不得从 ~/.m2、reactor 输出、HTTP 200 或部署开始推断远端完整;不得记录 settings 内容、凭据、token、签名 URL 或含密钥的命令行;不得删除大范围缓存,仅在请求或安全时清理任务自有临时仓库;报告中须区分源码/测试、本地构建、远端发布、空缓存消费、CI 与运行时就绪。资料另提及参考 references/recovery-playbook.md、evidence-report.md、anti-patterns.md 与 faq-deep.md,文件正文、代码示例及安装命令暂未提供。