JCenter已经宣布,即将在2020年5月1日,停止新的库的提交,在2022年2月21号以前,连库的解析服务也停止,所以,把以前的库或者未来的新库替换到MavenCentral是当务之急了。
我参考的教程来自以下两篇文章:
Publishing your first Android library to MavenCentral
Demo项目地址:
建议英文能力强的直接第一篇,我是在第二篇遇到问题时候,找到了第一篇文章解决了问题,因为第二篇里用的windows环境,我用的mac环境。
一、 Sonatype Jira相关设置
首先,先去Sonatype Jira这个地址注册一个SonatypeJira的账号;
其次,账号创建后,登录,然后在这个页面https://issues.sonatype.org/projects 点击Create创建一个issue,如下图:
这里group id最好使用你的github地址,这样比较容易验证,如果你想用自己单独的域名,需要做更多的操作。很繁琐,不建议这样做。
创建以后,会有管理员处理你的这个issue,等待管理员回复你的issue,他会告诉你,要在你的github创建一个repo,repo的名字是这个issue的id,比如我的是OSSRH-66052。管理员回复我的如下图:
你创建好repo后,回复管理员就好了,等待这个issue的状态变成RESOLVED状态。
这样,你就创建好了一个issue,用来承接对应group id下所有的库。
二、Gradle的准备
在你项目根目录下的build.gradle文件添加classpath。
1 | buildscript { |
在你要提交的module下的build.gradle文件中,尾部追加如下代码:
1 | ext { |
在根目录下创建publish.gradle,如下:
1 | apply plugin: 'maven-publish' |
三、创建GPG秘钥
在命令行中执行命令
gpg --full-gen-key
,注意,一定要在命令行中执行命令,不能在客户端界面做。加密方式选择RSA and RSA,长度输入4096,过期时间直接回车不用管,然后输入一个user ID并且提供一个邮箱,我直接用的我sonatype的用户名和邮箱。最后一步输入’O’,表示OK。
之后会弹出一个对话框,让输入密码。
1
2
3
4
5
6
7gpg: revocation certificate stored as '~/.gnupg/openpgp-revocs.d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXE478F7CC.rev'
public and secret key created and signed.
pub rsa4096 2021-03-22 [SC]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEE478F7CC
uid boybeak <boybeak@gmail.com>
sub rsa4096 2021-03-22 [E]这会为你在
~/.gnupg/openpgp-revocs.d/
目录下创建一个.rev文件,记住pub的末尾8位。接下来创建secring.gpg文件,命令行执行
gpg --export-secret-keys -o secring.gpg
,这会要求你输入在步骤4中设置的密码,在你用户根目录下会出现secring.gpg文件。回到gpg客户端,选择我们刚生成的秘钥条目,右键,选择
Send Public Key to Key Server
。
四、设置local.properties
1 | signing.keyId=刚才获取的秘钥后8位 |
五、执行打包和上传
设置完这些后,在AndroidStudio右侧的gradle tasks中找到你想提交的module,先后执行以下两个任务。
上传成功后,打开Nexus Repository Manager,登录你的sonatype账号,在左侧Staging Repositories
页面找到你的group id,选中,点击上边的close,等待几分钟十几分钟后刷新状态,等其状态变为closed后,再点击Release,则所有人都用使用你的库了。
。
Author: boybeak