jCenter不再接受任何新库的提交,Google也已经给出了其官方态度,建议开发者以后发布库都发布到MavenCentral上。
pluginManagement { |
相对于jCenter,MavenCentral的使用显得不那么简单,发布标准、域名限制也是要限制不少。
域名准备
加入你要提交一个开源库,引用路径如下:
implementation 'com.example:core:1.0.0' |
那么,你必须要拥有example.com
这个域名,而这在jCenter那并不做限制。如果你没有域名,也不想花钱,也不是没有办法,我们可以使用Github/Gitee,那么我们引入的路径就成为了:
implementation 'io.github.yourusername:core:1.0.0' |
创建Issue
Sonatype Issue网址:https://issues.sonatype.org/
进入Sonatype Issue网站,创建账号并登录。
邮箱,每次操作,都会收到通知 | |
Full name | 联系人名称 |
Username | 用户名,也是登录账号,上传代码时会用到 |
Password | 密码,至少8位,带有大小写字母和字符,上传代码时会用到 |
点击新建,创建Issue
项目 | Community Support - Open Source Project Repository Hosting (OSSRH) |
问题类型 | New Project |
概要 | 可以随便填,或者直接填New Project |
Group Id | 你的开源库引用路径的Group Id;如果是github项目,就填写io.github.myusername;如果是gitee项目,就填写io.gitee.myusername |
Project URL | 例如https://github.com/sonatype/nexus-public |
SCM url | 例如https://github.com/sonatype/nexus-public.git |
配置域名
Issue创建成功后,会生成一个类似OSSRH-XXXXX
的ID,记下这个ID。
如果上一步的Group Id,你选择了github/gitee,那么你只需要在github中创建一个名为OSSRH-XXXXX
的项目,权限设置为public。
如果您使用了自定义域名的Group Id,那么你需要在域名解析中添加一条记录。
主机记录 | 记录类型 | 记录值 |
@ | TXT | OSSRH-XXXXX |
域名配置成功后,我们进入创建的问题,添加一条评论Done
以告诉审核人员就可以了。
接下来就是耐心的等待,一般不会太长,5-10分钟就可以了。审核通过后,我们的Maven仓库就可以使用了。
配置签名
下载GPG
在MavenCentral上传的代码都需要GPG签名。下载地址:http://www.gnupg.org/download/
安装完成后,gpg --version
查看版本。
创建GPG密钥
密钥的创建我们可以采用kleopatra生成,也可以使用命令行生成。我这里记录一下命令行生成过程:
$ gpg --gen-key |
输入名称和邮箱地址
Real name: Central Repo Test |
输入O
以确认
Change (N)ame, (E)mail, or (O)kay/(Q)uit? O |
输入8位以上的密码,点击OK即可
查询所有本地生成的key列表
$ gpg --list-keys |
上传密钥至GPG服务器
gpg --keyserver keyserver.ubuntu.com --send-keys EE230A4B217369C1713B5FF44F6579788EB730F1 |
--keyserver指定密钥服务器地址,可选:
- keyserver.ubuntu.com
- keys.openpgp.org
- pgp.mit.edu
--send-keys指定密钥的keyid
导出私钥
gpg -o D:\secring.gpg --export-secret-keys EE230A4B217369C1713B5FF44F6579788EB730F1 |
上传代码
build.gradle
plugins { |
gradle.properties
signing.keyId=密钥ID |
发布
- 进入https://s01.oss.sonatype.org/,账号和密码就是Issue系统的账号密码。
- 点击左侧的
Staging Repositories
,我们就可以看到我们上传的代码包了。 - 上方菜单栏共包括五个按钮:Refresh/Close/Promote/Release/Drop。
- 选中我们上传的代码包,点击
Close
,开始验证代码。 - 验证完成后,点击
Refrsh
,再点击Release
即可发布。 - 发布完成后,我们可以立即在Sonatype的内容代码库看到我们发布的代码库,但是还不能使用依赖引入下载。一般还需要十分钟左右,您的代码版本就会出现在公开的Maven仓库列表,而这时你就可以随意使用了。