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

如何将KMM库发布到LocalMaven?Sonatype仓库未创建问题排查

KMM库发布到Sonatype无Staging仓库问题排查

我开发了一个KMM库,计划发布到Sonatype供原生Android应用调用,按照官方教程操作后,执行命令./gradlew publishAllPublicationsToSonatypeRepository显示构建成功,但Sonatype后台始终没有创建对应的Staging仓库。

我的配置信息

local.properties中的配置:

signing.keyId=我的密钥ID后8位
signing.password=我的密钥密码
ossrhUsername=Sonatype用户名
ossrhPassword=Sonatype密码
signing.secretKeyRingFile=secret-key.gpg

为解决编译时的JVM Target错误,我在convention-plugin的build.gradle中添加了以下代码:

kotlin {
    jvmToolchain(17)
}

之前遇到的编译错误:

Execution failed for task ':convention-plugins:compileKotlin'.
> Error while evaluating property 'compilerOptions.jvmTarget' of task ':convention-plugins:compileKotlin'.
   > Failed to calculate the value of property 'jvmTarget'.
      > Unknown Kotlin JVM target: 20

排查方向与解决建议

  • 验证Gradle发布配置完整性
    确认convention-plugin中的发布配置是否正确关联了Sonatype仓库:检查publishing.repositories块里是否配置了Sonatype的Staging仓库地址,是否正确从local.properties读取ossrhUsername和ossrhPassword进行认证,有没有遗漏mavenCentral()仓库声明。

  • 检查签名环节是否静默失败
    构建成功不代表签名流程正常,执行./gradlew publishAllPublicationsToSonatypeRepository --info查看详细日志,重点关注签名相关的输出:

    • 确认signing.secretKeyRingFile的文件路径是否正确,当前用户是否有读取权限
    • 检查密钥ID、密码是否与本地GPG密钥匹配,有没有密钥过期或未导入的情况
  • 确认Sonatype账号状态
    如果是首次发布,检查账号是否完成了域名验证流程,Sonatype是否已经审核通过你的发布权限。未通过审核的账号无法创建Staging仓库。

  • 确保发布任务真正执行
    有时候Gradle会因为代码无变更跳过发布任务,先执行./gradlew clean清空构建缓存,再重新执行发布命令。同时查看日志里的任务执行记录,确认publishAllPublicationsToSonatypeRepository的所有子任务都已完成。

  • 排查JVM版本兼容问题
    虽然jvmToolchain(17)解决了编译错误,但要保证项目全局JVM版本一致:检查根目录gradle.properties是否设置了org.gradle.java.home指向JDK17,避免版本不匹配导致的隐性发布失败。

内容的提问来源于stack exchange,提问作者Abhishek Agarwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:44:53