上传你的 SDK 到 MavenCentral
参考链接:https://juejin.cn/post/7023219116534136840
注册账号
Maven Central 是由 Sonatype 公司负责维护的,所以我们要使用Maven Central 的话,首先需要注册 Sonatype 账号。
链接:https://issues.sonatype.org/secure/Dashboard.jspa
账号密码会在提交 SDK 的时候用到
新建提交 SDK 的工单
新建一个工单
Group Id 填你的域名
Project URL 填你仓库的地址
SCM url 填你仓库的 git 链接
最后点击 新建 就会生成一个工单
审核通过
接下来就是等待审核,这个时长可能很短,也可能有点长,一般不到 24 小时
审核通过后,会让你建一个 public 临时仓库,来证明这就是你自己的仓库
新建完了之后回复一下就行,可以参考我的回复
然后再等待,等他说 Congratulations! 就说明你拥有了上传的权限
登录仓库
登录链接:https://s01.oss.sonatype.org/
使用一开始注册的 Sonatype 的账号密码
现在你的仓库已经准备完毕了
创建 GPG 签名
GPG签名主要是给上传的library使用,每个上传的library都需要进行签名后才可以
不同的library可以使用相同的签名文件,所以GPG密钥一般只需要申请一次即可
gpg 工具:https://www.gnupg.org/download/index.html
这个工具 Windows 和 MacOS 通用,并且推荐使用命令行
我这里以 MacOS 为例:
使用这行命令开始创建你的 gpg 签名
1 | gpg --gen-key |
然后会让你输入 real name (其实只要输入一个你记得的名字就行,不一定要是真实姓名)和 email address
确认无误输入 O
创建一个密码并记住他,点击 OK
这样就生成成功了!(那串数字就是公钥,最后 8 位这就是你这个签名的 ID)
上传 gpg
使用这行命令(记得将最后的 8 位改成你的签名 ID,也就是你刚刚得到的那串数字的后8位)
1 | gpg --keyserver hkp://keyserver.ubuntu.com --send-keys 2918944A |
上传完之后,记得使用search-key
验证一下
1 | gpg --keyserver hkp://keyserver.ubuntu.com --search-keys 2918944A |
导出私钥 gpg
这里需要填写路径并命名 gpg 文件,同样使用你自己的 8 位 ID
1 | gpg -o ~/Desktop/test.gpg --export-secret-keys 2918944A |
这个 test.gpg 就是你的私钥,切记不要上传这个东西
开始准备上传
我这里使用的是大佬写的上传插件:https://github.com/vanniktech/gradle-maven-publish-plugin
这里是官方文档:https://vanniktech.github.io/gradle-maven-publish-plugin/
可以参考我的build.gradle.kts
1 | import com.vanniktech.maven.publish.SonatypeHost |
这个插件给了两种配置 MavenCentral 账号密码的方式,一种是配置在gradle.properties
里
一种是写在本地环境变量里
我是直接写在了环境变量里,这个参考 https://vanniktech.github.io/gradle-maven-publish-plugin/central/#in-memory-gpg-key
使用这个命令生成 signingInMemoryKey
1 | gpg2 --export-secret-keys --armor <key id> <path to secring.gpg> | grep -v '\-\-' | grep -v '^=.' | tr -d '\n' |
参考我的环境变量配置 (.zshrc)
1 | mavenCentral |
结尾
另外,我介绍一下我的项目目录
这里涉及三个模块
- MatrixKotlin 用来编写库的代码并上传
- 总模块用来测试本地库运行情况
- testInMavenCentral 用来引入已上传的代码
- Title: 上传你的 SDK 到 MavenCentral
- Author: lucas
- Created at : 2024-01-29 19:13:24
- Updated at : 2024-11-12 09:01:29
- Link: https://darkflamemasterdev.github.io/2024/01/29/上传你的-SDK-到-MavenCentral/
- License: This work is licensed under CC BY-NC-SA 4.0.