现状:本库的发布配置指向一个已经不存在的服务。
| 位置 |
内容 |
状态 |
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、.gitignore、LICENSE、README.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 -- .),因为它确实不含任何内容改动 —— 但这是维护者的判断,请先确认再执行。
建议顺序
- 确认并清掉行尾噪音,回到干净工作区
- 迁移
distributionManagement + 发布插件到 central-publishing-maven-plugin(照抄 UltiTools-API 的配置)
- 续期 GPG 密钥,并把轮换步骤写下来(当前没有任何文档,密钥只在一台机器上)
- 用一次 SNAPSHOT 发布验证整条路径
验收
现状:本库的发布配置指向一个已经不存在的服务。
pom.xml:36-45distributionManagementhttps://s01.oss.sonatype.org/...的 snapshots 与 stagingpom.xml:198-203nexus-staging-maven-plugin1.7.0nexusUrl: https://s01.oss.sonatype.org/,serverId: ultikits-nexus-tokenSonatype 的 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、.gitignore、LICENSE、README.md和 12 个源文件。实测这些全部是行尾变化,零语义内容:
插入与删除行数完全相等、且忽略行尾后 diff 为空 —— 说明某次操作把整个仓库的换行符规范化了一遍。
改 pom 之前必须先处理掉这堆噪音,否则真正的改动会淹没在 2227 行里,review 和回滚都无从下手。建议直接丢弃(
git checkout -- .),因为它确实不含任何内容改动 —— 但这是维护者的判断,请先确认再执行。建议顺序
distributionManagement+ 发布插件到central-publishing-maven-plugin(照抄UltiTools-API的配置)验收
pom.xml中不再出现s01.oss.sonatype.orgcentral-publishing-maven-plugin,server id 与settings.xml一致