发布Android项目到MavenCentral踩坑记录

最近在折腾开源项目,在使用vanniktech/gradle-maven-publish-plugin发布到Maven Central Repository时遇到一些坑特别记录一下:

  • Cannot get stagingProfiles for account xxxx:是由于SONATYPE_HOST没设置正确导致的,来源

  • The key ID must be in a valid form (eg 00B5050F or 0x00B5050F), given value: :是由于keyId位数不正确,取最后8位即可。

  • 上传MavenCentral后提示dependency version information is missing: 使用BOM来依赖版本可能会导致这个问题, 指定具体版本来解决。

1. 创建Sonatype账号并获取token

central.sonatype.com/ 直接使用github登录即可, 这样可以直接认证github的namespace。到View Account → Generate User Token,生成token即可

2. 生成GPG签名

直接参考站内教程即可。 重点命令:

cmd 复制代码
//生成
gpg --gen-key
//上传
gpg --keyserver hkp://keyserver.ubuntu.com --send-keys 后8位ID
//验证
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 后8位ID
//导出
gpg -o E:/secring.gpg --export-secret-keys 后8位ID

3. 引入发布插件并配置文件

具体可以参考第二步的站内教程: 此处贴出正确的配置:

  • rootProject/gradle.properties 文件:
properties 复制代码
#------------------------------------------ publish config ----------------------------------------#
GROUP=io.github.ravenliao.htmlannotator
RELEASE_SIGNING_ENABLED=true
SONATYPE_HOST=CENTRAL_PORTAL
#
POM_NAME=HtmlAnnotator
POM_DESCRIPTION=Android HTML Rendering Library
POM_URL=https://github.com/RavenLiao/HtmlAnnotator
#
POM_SCM_URL=https://github.com/RavenLiao/HtmlAnnotator
POM_SCM_CONNECTION=https://github.com/RavenLiao/HtmlAnnotator.git
POM_SCM_DEV_CONNECTION=https://github.com/RavenLiao/HtmlAnnotator.git
#
POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=repo
#
POM_DEVELOPER_ID=RavenLiao
POM_DEVELOPER_NAME=RavenLiao
POM_DEVELOPER_URL=https://github.com/RavenLiao
  • 全局配置文件(~/.gradle/gradle.properties):
properties 复制代码
#publish
signing.keyId=GPG签名key后8位
signing.password=生成GPG签名的密码
signing.secretKeyRingFile=导出GPG签名的文件路径
mavenCentralUsername=第一步中生成的token的Username
mavenCentralPassword=第一步中生成的token的Password
相关推荐
huwuhang14 分钟前
植物大战僵尸版本所有版本合集下载含杂交版 融合版 火影版 二战版 无双版 抽卡版 β版等等
android·游戏·电脑·游戏机
尤老师FPGA8 小时前
petalinux修改设备树添加vdma生成linux系统
android·linux·运维
月山知了8 小时前
linux kernel component子系统:基于rk3588 Android 14 kernel-6.1 display-subsystem代码分析
android·linux·运维
leo_messi9411 小时前
多线程(五) -- 并发工具(二) -- J.U.C并发包(八) -- CompletableFuture组合式异步编程
android·java·c语言
Deryck_德瑞克14 小时前
【已解决】MySQL连接出错 1045 - Access denied for user ‘root‘@‘::1‘
android·mysql·adb
2501_9159184114 小时前
iOS性能测试工具 Instruments、Keymob的使用方法 不局限 FPS
android·ios·小程序·https·uni-app·iphone·webview
.豆鲨包15 小时前
【Android】组件化搭建的一般流程
android
心有—林夕16 小时前
MySQL 误操作恢复完全指南
android·数据库·mysql
忙什么果16 小时前
Mamba学习笔记2:Mamba模型
android·笔记·学习
Wyawsl17 小时前
MySQL故障排查与优化
android·adb