You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

发布至Maven Central时遇离线模式缓存缺失及400错误求助

Maven Central发布1.0.5版本失败问题排查

问题背景

已成功向Maven Central发布5个版本,发布1.0.5版本时连续遇到两类错误:

  1. 开启Gradle离线模式时:

任务 ':publishMavenJavaPublicationToOSSRHRepository' 执行失败。
无法将发布物'mavenJava'发布至仓库'OSSRH'
离线模式下无可用缓存资源'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/io/github/jspinak/brobot/1.0.5-SNAPSHOT/maven-metadata.xml'。

  1. 关闭离线模式后:

无法获取'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/io/github/jspinak/brobot/1.0.5-SNAPSHOT/maven-metadata.xml'。
收到服务器返回的400状态码:Bad Request 禁用Gradle离线模式并同步项目

已尝试运行Gradle工具栏的generateMetadataFileForMavenJavaPublication,无效果;已在Sonatype论坛发帖求助。项目为开源项目,可查看library模块的build.gradle配置。

排查与解决方案

1. 核对版本号与仓库URL

400 Bad Request多因请求格式或路径错误导致:

  • 确认版本号1.0.5-SNAPSHOT无特殊字符,符合Maven规范
  • 检查build.gradle中OSSRH仓库URL:快照版本应使用https://s01.oss.sonatype.org/content/repositories/snapshots/,正式版本用https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/,不要混淆两类仓库

2. 验证发布配置与权限

  • 确认build.gradle中publication配置的groupId、artifactId、version三者完全匹配,且已配置源码、javadoc等必要构件(Sonatype要求完整元数据)
  • 检查OSSRH凭证(username/password)是否有效,无过期或权限变更;确认groupId已通过Sonatype审批

3. 清理缓存并重新构建

  • 执行命令:./gradlew clean build --refresh-dependencies,清理本地Gradle缓存并重新同步依赖
  • 关闭IntelliJ的Gradle离线模式,同步项目后再尝试发布命令

4. 检查Sonatype控制台状态

  • 登录Sonatype Nexus控制台,查看是否存在未关闭的staging repository,避免版本冲突
  • 确认目标版本未在仓库中重复存在

5. 手动校验元数据

  • 执行./gradlew generateMetadataFileForMavenJavaPublication后,查看build/publications/mavenJava目录下的maven-metadata.xml,确认格式正确、无语法错误
  • 尝试手动上传元数据文件至OSSRH,排查是否为Gradle上传逻辑问题

内容的提问来源于stack exchange,提问作者Joshua Spinak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:55:25