JCenter已经提桶跑路,是时候学会上传到Maven Central了(1)

https://mp.weixin.qq.com/s/rgqSMyF9ROs-WOvK_aJZNQ

以前也写过JCenter上传的方法:

《2020最新通过novoda上传到JCenter的方法、技巧及遇到的坑》

不过现在如果再想上传包到JCenter已经是不可以的了,提示如下:

在这里插入图片描述

2. 转战Maven Central

=============================================================================

Google在 Android Studio 4.2 把Maven Central作为gradle的默认配置了,所以我们还是把包放在官方指定的仓库中比较保险。

相比JCenter这样的第三方仓库,Maven Central的操作就稍显复杂,不过我们只要把思路理清理顺了,其实也没有那么难操作。

Step1:准备环境


OS: Windows10

IDE: Android Studio 4.1.3

Android Gradle Plugin Version: 4.1.3

Gradle Version: 6.5

GPG: Gpg4win-3.1.15

Step2:提交Issue


如果想要往Maven Central上传包,首先需要提交一个Issue进行申请。

申请网址:https://issues.sonatype.org/secure/Dashboard.jspa

如果没有账号,请先注册一个,这个账号跟后续登录maven仓库网站是一样的,需要注意。

提交Issue需要选择的类型和填写的内容如下图红框内所示:

在这里插入图片描述

这里需要特别注意Group Id,因为这涉及到域名,需要你拥有这个域名的所有权,不能随便填写,否则验证不通过。

如果没有域名,你可以使用你在GitHub上注册的账号,比如我这边是github.com/ddnosh,那么我们申请的Group Id可以写成com.github.ddnosh。

提交了Issue后,系统会马上给你发送一个comment,让你对Group Id进行验证,比如我们用的是GitHub网站的域名,系统让我们在账号下新建一个项目以便验证这个Group Id是你的:

在这里插入图片描述

如果是其它域名的话,需要在域名下进行验证,具体参考系统给你发的Comment。

我们在GitHub上创建好这个项目后,在这个Issue下面留言让它们去检测,系统如果检测成功,会发送如下信息:

在这里插入图片描述

这样我们就有权限去上传包了,下一步我们介绍如何上传包。

Step3:配置


官网也有介绍如何通过gradle上传包的,参考如下文章:

https://central.sonatype.org/pages/gradle.html

不过我们今天介绍通过第三方的插件:Gradle Nexus Staging,进行上传。

下面就介绍下配置的一些信息。

首先,在项目根目录的build.gradle中添加apply:

apply plugin: ‘io.codearte.nexus-staging’

然后在dependencies中添加两个classpath:

classpath ‘com.github.dcendents:android-maven-gradle-plugin:2.1’

classpath

‘io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.30.0’

接下来在项目的根目录下添加一个专门用于上传的gradle脚本,这里我们叫做publish-mavencentral.gradle,这是一个模板,可以直接拿来用,可以直接点击查看:publish-mavencentral.gradle

可以看到publish-mavencentral.gradle脚本里面有一些参数需要设定的,那么我们下面就是要定义这些参数,为了安全起见,这些参数我们全部定义在local.properties中:

signing.keyId=AAAAAAAA

signing.password=123

signing.secretKeyRingFile=C:/android/xxx.gpg

##nexus账号信息,也就是创建工单时的账号和密码

ossrhUsername=xxx

ossrhPassword=456

后面的工作就是看看这5个参数如何设定的:

ossrhUsername和ossrhPassword很简单,就是我们在【Step2:提交Issue】中注册的用户名和密码。

signing相关的3个参数是跟我们包的签名相关的,这里我们使用gpg4win,官网下载地址:https://www.gpg4win.org/index.html

接下来我们就介绍下signing.keyId、signing.password、signing.secretKeyRingFile是怎么定义的。

  1. 生成密钥对

gpg --gen-key

在这里插入图片描述

signing.keyId我们只需要取最后的8位;

signing.password就是我们在生成密钥对过程中要求我们输入的;

如果需要查看keyId,可以输入如下命令:

gpg --list-key

  1. signing.secretKeyRingFile

这个文件到底是什么文件呢?其实它就是gpg key的secret。

那么怎么获取呢?很简单,打开安装好的Gpg4win软件,这里名字叫做Kleopatra:

在这里插入图片描述

右键,选择Backup Secret Keys…,保存为gpg格式的文件,然后这个文件的路径就是signing.secretKeyRingFile的值。

另外关于publish-mavencentral.gradle中的sdk包的版本号,我们可以统一定义在根目录的build.gradle文件的buildscript节点下,我们定义一个ext子节点:

ext {

versionName = ‘1.0.0’

versionCode = 1

kotlin_version = ‘1.4.31’

}

versionName就是sdk的版本号,需要注意的是,如果versionName以SNAPSHOT结尾的话,则会上传到snapshot的服务器中。

Step4:上传包(jar/aar)


经过上面的准备工作,我们接下来就进入到激动人心的时刻了,将我们的包上传到Maven仓库,是不是很心动呢?

打开Android Studio右上角的Gradle,选择图示的publish,双击运行即可。

在这里插入图片描述

我们登录:https://s01.oss.sonatype.org/,账号密码就是我们注册Issue时的账号密码。

我们选择左侧的Staging Repositories,可以看到我们刚刚上传的包:

在这里插入图片描述

我们选中自己的包,然后点击"Close"按钮:

在这里插入图片描述

然后系统会帮我们对包进行一系列的检测工作,我们看到有一个错误:

Failed: Signature Validation

意思是包签名出错。原来我们本地用Gpg4win生成的密钥对,没有将公钥上传到官网验证包指定的服务器地址,通过右侧的日志我们也可以看到,系统对一些可以上传公钥的服务器进行验证时没有发现我们上传的公钥,于是就报错了。

解决方案也很简单,就是从右侧选一个服务器地址,将我们本地生成的公钥上传上去即可。

分享读者

作者2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。

被人面试过,也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!

我们整理了一份阿里P7级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深入学习提升。

主要包括腾讯,以及字节跳动,阿里,华为,小米,等一线互联网公司主流架构技术。

腾讯T3架构师学习专题资料

如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!

我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
4758945810)]

如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!

我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值