nexus-staging-maven-plugin仅负责上传构件至sonatype ossrh staging仓库,真正发布到maven中央仓库需手动执行close→release操作,并等待自动同步;安全依赖gpg签名、完整元数据及权限校验,而非插件加密传输。

直接用 nexus-staging 插件本身并不能把组件“发布到 Maven 中央仓库”——它只负责把构件上传并管理到 Sonatype 的 OSSRH(OSS Repository Hosting) staging 仓库,真正的同步到中央仓库,需要你手动执行 Close → Release 操作,并等待 Sonatype 自动同步。安全发布的关键在于 GPG 签名、元数据完整性与权限校验,而非插件本身加密传输。
确认前提:你已具备发布资格
在配置插件前,请确保已完成以下三件事:
- 已在 Sonatype Jira 提交 New Project 工单,且状态变为 RESOLVED
- 已按要求验证 groupId(如
io.github.yourname或com.yourdomain),方式为:GitHub 创建同名公开仓库 / DNS 添加 TXT 记录 - 已生成并上传 GPG 公钥至
keyserver.ubuntu.com,且私钥密码已牢记
配置 nexus-staging-maven-plugin(核心步骤)
该插件不参与签名,但能自动化 staging 流程。在 pom.xml 的 <build><plugins></plugins></build> 中添加:
<plugin><groupid>org.sonatype.plugins</groupid><artifactid>nexus-staging-maven-plugin</artifactid><version>1.6.13</version><extensions>true</extensions><configuration><serverid>ossrh</serverid><nexusurl>https://oss.sonatype.org/</nexusurl><autoreleaseafterclose>false</autoreleaseafterclose><!-- 关键:禁用自动发布,便于人工校验 --></configuration></plugin>
其中 serverId 必须与 ~/.m2/settings.xml 中的 server ID 一致:
<servers><server><id>ossrh</id><username>your-sonatype-username</username><password>your-sonatype-password-or-token</password></server></servers>
⚠️ 注意:密码建议使用 Sonatype 生成的 User Token(非登录密码),更安全且支持 API 调用。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
必须配套的构建配置(缺一不可)
nexus-staging 只管上传和 staging 管理,真正让构件“被中央仓库接受”的,是以下三项:
-
GPG 签名:所有构件(jar、sources、javadoc)都需带
.asc签名文件。通过maven-gpg-plugin实现:
<plugin><groupid>org.apache.maven.plugins</groupid><artifactid>maven-gpg-plugin</artifactid><version>3.2.1</version><executions><execution><id>sign-artifacts</id><phase>verify</phase><goals><goal>sign</goal></goals><configuration><gpgarguments><arg>--pinentry-mode</arg><arg>loopback</arg></gpgarguments></configuration></execution></executions></plugin>
-
源码与文档打包:中央仓库强制要求
-sources.jar和-javadoc.jar,用maven-source-plugin和maven-javadoc-plugin生成 -
完整元数据声明:包括
<licenses></licenses>、<scm></scm>、<developers></developers>、<description></description>、<url></url>,否则 Close 会失败
执行发布:从 deploy 到 Release
运行命令完成上传与 staging:
mvn clean deploy -P release
其中 -P release 应激活包含上述所有插件的 profile(含 GPG、source、javadoc)。成功后:
- 构件已上传至 https://www.php.cn/link/4b7bffe0b6e29d949de3ea0f974007c6
- 登录后找到以你
groupId开头的 staging 仓库(如comexample-1002) - 点击 Close → 等待检查(通常 1–2 分钟)→ 若状态变 closed,再点 Release
- Release 成功后约 10–30 分钟,构件将自动同步至 https://www.php.cn/link/596b42eb5fe47de3f9348936bfbdc345 和 https://www.php.cn/link/f95ffe289c87e37e448342836120b733
整个过程无加密传输风险——安全性由 GPG 签名保障,而非插件通道。只要签名验证通过、元数据合规、权限匹配,就视为可信发布。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










