Skip to content

发布路径整条失效:pom 指向已下线的 s01.oss.sonatype.org,且签名密钥已过期 #1

Description

@wisdommen

现状:本库的发布配置指向一个已经不存在的服务

位置 内容 状态
pom.xml:36-45 distributionManagement https://s01.oss.sonatype.org/... 的 snapshots 与 staging ❌ 该主机 2026-08 起返回 404
pom.xml:198-203 nexus-staging-maven-plugin 1.7.0 nexusUrl: https://s01.oss.sonatype.org/serverId: ultikits-nexus-token ❌ 同上

Sonatype 的 OSSRH 已经下线,发布迁到了 Central Portal。现在跑一次 mvn deploy 不会给出一个「服务已迁移」的清晰错误,而是一个 404 —— 看起来像网络问题或凭据问题,实际是整条路径没了。

现成的迁移范本在自家仓库里UltiTools-API 已经改用 central-publishing-maven-plugin,server id 用 ultikits-sonatype。照抄那套配置即可,不需要自己摸索。

第二个独立的阻塞(不解决这个,改完 pom 也发不出去)

签名用的 GPG 密钥 C27654300A2E94D6 已于 2026-07-23 过期,且没有备用子钥、没有轮换文档,私钥只存在于维护者本机的 ~/.gnupg。Maven Central 强制要求签名。

这一条只有维护者本人能处理,且它和 pom 迁移是两件独立的事——先改 pom 不会让发布变得可用,先续期 GPG 也不会。要发出去必须两件都做。

⚠️ 动手前:当前工作区是脏的,但脏的是噪音

本地检出在分支 feature/project-md 上,有 17 个文件未提交改动,包括 pom.xml.gitignoreLICENSEREADME.md 和 12 个源文件。

实测这些全部是行尾变化,零语义内容

git diff --stat                    → 16 files changed, 2227 insertions(+), 2227 deletions(-)
git diff --ignore-cr-at-eol --stat pom.xml → 空

插入与删除行数完全相等、且忽略行尾后 diff 为空 —— 说明某次操作把整个仓库的换行符规范化了一遍。

改 pom 之前必须先处理掉这堆噪音,否则真正的改动会淹没在 2227 行里,review 和回滚都无从下手。建议直接丢弃(git checkout -- .),因为它确实不含任何内容改动 —— 但这是维护者的判断,请先确认再执行。

建议顺序

  1. 确认并清掉行尾噪音,回到干净工作区
  2. 迁移 distributionManagement + 发布插件到 central-publishing-maven-plugin(照抄 UltiTools-API 的配置)
  3. 续期 GPG 密钥,并把轮换步骤写下来(当前没有任何文档,密钥只在一台机器上)
  4. 用一次 SNAPSHOT 发布验证整条路径

验收

  • 工作区干净,行尾噪音已处理
  • pom.xml 中不再出现 s01.oss.sonatype.org
  • 发布插件为 central-publishing-maven-plugin,server id 与 settings.xml 一致
  • GPG 密钥有效,且轮换步骤已成文
  • 一次 SNAPSHOT 发布走通

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions