maven-central-publish

📦 标准化 Maven Central 发布工作流

编辑精选

基于 Central Portal 的 Java 库发布指南,提供标准化 Maven 配置,简化 GPG 签名与部署。

收藏
1.9k
安装
713
版本
v1.0.0
CLS 安全性认证2026-05-01
点击查看完整报告 >

使用说明

该 Skill 提供了一套完整的 Java/Kotlin 库发布到 Maven Central 的标准化工作流,基于 Sonatype 最新的 Central Portal 机制。核心用法包括:首先完成前置条件准备,包括注册 Central Portal 账号、验证命名空间(groupId)以及生成用户令牌;其次配置本地环境,安装 Maven、GPG 和 JDK 17+,并设置 Loopback Pinentry 模式以实现无头环境的自动签名;接着配置 Maven 的 settings.xml 文件,填入 Central Portal 的用户令牌;最后在项目的 pom.xml 中配置必需的插件(source、javadoc、gpg、central-publishing),执行 mvn clean deploy -P release 即可完成发布。

显著优点包括:采用最新的 Central Portal 发布机制,替代即将淘汰的 OSSRH,符合官方最新标准;提供了经过验证的 pom.xml 插件配置模板,包含 Source、Javadoc、GPG 签名和 Central Publishing 插件的最佳实践;针对常见的 401 认证失败、GPG 签名错误、Javadoc 生成失败等问题提供了明确的解决方案;明确建议使用用户令牌而非主账号密码,采用 Loopback Pinentry 避免交互式输入,适合 CI/CD 环境。

潜在缺点与局限性:维护者为个人账号(T3 来源),虽经安全审查无恶意代码,但缺乏企业级维护保障;该 Skill 仅为配置指南和模板,不包含自动化脚本或工具,所有操作仍需用户手动执行;涉及 GPG 密钥管理、Maven 多环境配置、Portal 命名空间验证等多个环节,对新手仍有学习曲线;仅支持新版 Central Portal,不兼容仍在使用旧版 OSSRH 的遗留项目。

适合的目标群体包括:需要将 Java/Kotlin 开源库发布到 Maven Central 的开发者;首次接触 Maven Central 发布流程,需要详细配置指引的新手;希望从旧版 OSSRH 迁移到新版 Central Portal 的维护者;寻求标准化、可复用的 Maven 发布配置模板的团队。

使用该技能可能存在的常规风险:用户需在 settings.xml 中配置 Central Portal Token 和 GPG 密码,若误提交到版本控制或共享环境,可能导致仓库被恶意上传;Loopback Pinentry 配置不当可能导致签名失败或安全风险,特别是在多用户服务器环境;配置中 autoPublish 参数若设为 true,将跳过人工审核直接发布,一旦上传恶意或错误版本无法撤回;发布过程中网络中断可能导致半完成状态,需手动在 Portal 界面处理。

安全解读

核心用法

maven-central-publish 是一份面向 Java/Kotlin 开发者的标准化发布指南,专注于 Sonatype 新一代 Central Portal 工作流。Skill 提供了从环境准备到最终部署的完整操作手册,包括:

1. 账号与权限准备:Central Portal 注册、groupId 命名空间验证、User Token 生成
2. GPG 签名环境配置:针对自动化/无头环境的 Loopback Pinentry 关键配置,解决 CI/CD 场景下的签名交互难题

3. Maven 工具链整合settings.xml 凭证配置与 pom.xml 四插件组合(source、javadoc、gpg、central-publishing)

4. 发布执行与验证mvn clean deploy -P release 标准命令,以及 autoPublish 开关的手动/自动发布策略

显著优点

  • 时效性强:基于 2024 年后推广的 Central Portal 新流程,替代传统 OSSRH 方案,审核更快、界面更现代
  • 自动化友好:Loopback Pinentry 配置彻底解决无人值守签名痛点,适配 GitHub Actions 等 CI 场景
  • 合规完整:严格遵循 Maven Central 质量要求(源码包、Javadoc、GPG 签名、元数据完整性)
  • 故障排查体系化:401 认证失败、GPG 签名错误、Javadoc 生成失败等高频问题均有对应解决方案

潜在局限与风险

| 局限类型 | 具体说明 |
|---------|---------|
| 生态锁定 | 仅覆盖 Maven 生态,Gradle 开发者需额外参考 Gradle 专属文档 |
| 版本敏感 | Central Publishing Plugin 迭代较快(当前 0.7.0),配置语法可能随版本变化 |
| 人工审核环节 | `autoPublish=false` 时仍需登录 Web 界面手动确认,无法全链路无人化 |
| GPG 密钥管理 | 指南涉及密钥生成与服务器上传,若操作不当存在密钥泄露或丢失风险 |
| 命名空间约束 | groupId 必须与 Central Portal 验证的命名空间严格匹配,灵活性受限 |

适合人群

  • 需要将自研 Java/Kotlin 库开源至 Maven Central 的中高级开发者
  • 搭建组织级 Artifact 发布流水线的 DevOps 工程师
  • 维护多模块项目、追求发布流程标准化的技术团队

常规风险提示

  • 凭证安全settings.xml 中的 User Token 具备发布权限,需通过 CI 密钥管理或本地权限控制妥善保管
  • GPG 私钥保护:私钥 passphrase 硬编码于配置文件存在泄露风险,生产环境建议改用环境变量注入
  • 版本号策略:Maven Central 禁止版本覆盖,发布后无法撤回,需严格遵循语义化版本(SemVer)

maven-central-publish 内容

templates文件夹
手动下载zip · 3.7 kB
pom-plugins.xmltext/plain
请选择文件