新建 Sonatype 项目
注册账号:
https://issues.sonatype.org/secure/Signup!default.jspa
这里注册不需要什么验证码,很简单。
创建问题
点击新建:
概要:自定义,写项目名称即可。
GroupId:如果是github上面的项目,不要使用com.github.*
作为groupId,可以使用io.github.*
Project URL和 SCM url 按照下面的建议填写即可;
创建完成后下面很快会有回应,具体你的表单有什么问题,下一步怎么操作都会列举出来。
这里我的创建有两个问题
- groupId 不符合规范
- 需要创建一个项目进行校验
按照上面提供的链接 创建一个 https://github.com/myusernamehsw/OSSRH-92470
项目即可。
上面的问题修改完成后,为了加快进度,可以用一句优美的英文评论下。当出现Congratulations! 那就算成功了。可以进行下一步了。
新建 GPG 密钥对
以Mac电脑位例
安装gpg
brew install gpg
可能经过很长时间才能完成,耐心等待
生成 GPG 密钥对
gpg --generate-key
查看 GPG 密钥对
gpg --list-keys
上传公钥
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 【密钥指纹】
导出密钥文件
# 导出公钥
gpg --export 【密钥指纹】 > my_pub.gpg
# 导出私钥
gpg --export-secret-keys 【密钥指纹】 > my_pri.gpg
配置发布脚本
我这里使用的是 vanniktech 插件,配置比较简单。
修改lib下面的build.gradle
import com.vanniktech.maven.publish.SonatypeHost
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
// 添加 vanniktech
id "com.vanniktech.maven.publish" version "0.25.2"
}
......
mavenPublishing {
publishToMavenCentral(SonatypeHost.S01, /* automaticRelease */ true)
signAllPublications()
}
gradle.properties
# 根据自己创建的工单,替换掉下面的内容
GROUP=io.github.myusernamehsw
POM_ARTIFACT_ID=ViewBindingKtx
VERSION_NAME=1.0.0
POM_NAME=ViewBindingKtx
POM_DESCRIPTION=Android ViewBindingKtx
POM_INCEPTION_YEAR=2023
POM_URL=https://github.com/MyUserNameHSW/ViewBindingKtx
POM_LICENSE_NAME=The Apache Software License, Version 2.0
POM_LICENSE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENSE_DIST=repo
POM_SCM_URL=https://github.com/MyUserNameHSW/ViewBindingKtx
POM_SCM_CONNECTION=scm:https://github.com/MyUserNameHSW/ViewBindingKtx.git
POM_SCM_DEV_CONNECTION=scm:https://github.com/MyUserNameHSW/ViewBindingKtx.git
POM_DEVELOPER_ID=MyUserNameHSW
POM_DEVELOPER_NAME=MyUserNameHSW
POM_DEVELOPER_URL=https://github.com/MyUserNameHSW
# 下面的自行补充
# 密钥ID的后8位
signing.keyId=
# 密钥密码
signing.password=
#
signing.secretKeyRingFile=[导出的私钥文件路径,如 /Users/pengxurui/xxx.gpg]
# Sonatype账号&密码
mavenCentralUsername=
mavenCentralPassword=
发布
publish
点击上方菜单进行发布
如果Tasks下面没有这么多菜单,而是出现 Task list not built
那就点击这个按钮 -> Experimental ->
重新sync项目即可
nexus 发布 release
进入 https://s01.oss.sonatype.org/
并且使用 Sonatype 账号登录。
点击 Staging Repositories 菜单,点击 Release 进行发布即可
然后在上面的搜索中搜索你的项目名称即可以看到了
然后可以集成到自己的项目中测试一下能不能正常下载。