https://mp.weixin.qq.com/s/rgqSMyF9ROs-WOvK_aJZNQ
以前也写过JCenter上传的方法:
《2020最新通过novoda上传到JCenter的方法、技巧及遇到的坑》
不过现在如果再想上传包到JCenter已经是不可以的了,提示如下:
=============================================================================
Google在 Android Studio 4.2 把Maven Central作为gradle的默认配置了,所以我们还是把包放在官方指定的仓库中比较保险。
相比JCenter这样的第三方仓库,Maven Central的操作就稍显复杂,不过我们只要把思路理清理顺了,其实也没有那么难操作。
OS: Windows10
IDE: Android Studio 4.1.3
Android Gradle Plugin Version: 4.1.3
Gradle Version: 6.5
GPG: Gpg4win-3.1.15
如果想要往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下面留言让它们去检测,系统如果检测成功,会发送如下信息:
这样我们就有权限去上传包了,下一步我们介绍如何上传包。
官网也有介绍如何通过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是怎么定义的。
- 生成密钥对
gpg --gen-key
signing.keyId我们只需要取最后的8位;
signing.password就是我们在生成密钥对过程中要求我们输入的;
如果需要查看keyId,可以输入如下命令:
gpg --list-key
- 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的服务器中。
经过上面的准备工作,我们接下来就进入到激动人心的时刻了,将我们的包上传到Maven仓库,是不是很心动呢?
打开Android Studio右上角的Gradle,选择图示的publish,双击运行即可。
我们登录:https://s01.oss.sonatype.org/,账号密码就是我们注册Issue时的账号密码。
我们选择左侧的Staging Repositories,可以看到我们刚刚上传的包:
我们选中自己的包,然后点击"Close"按钮:
然后系统会帮我们对包进行一系列的检测工作,我们看到有一个错误:
Failed: Signature Validation
意思是包签名出错。原来我们本地用Gpg4win生成的密钥对,没有将公钥上传到官网验证包指定的服务器地址,通过右侧的日志我们也可以看到,系统对一些可以上传公钥的服务器进行验证时没有发现我们上传的公钥,于是就报错了。
解决方案也很简单,就是从右侧选一个服务器地址,将我们本地生成的公钥上传上去即可。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://img-blog.csdnimg.cn/img_convert/496a65c43d8a3bb4d00e59cccd13644d.jpeg)
如何成为Android高级架构师!
架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。 你如何具备这种能力呢?一是来自于经验,二是来自于学习。
架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。
但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。这也是我整理架构师进阶此系列的始动力之一。
成为Android架构师必备知识技能
对应导图的学习笔记(由阿里P8大牛手写,我负责整理成PDF笔记)
部分内容展示
《设计思想解读开源框架》
- 目录
- 热修复设计
- 插件化框架设计
《360°全方面性能优化》
- 设计思想与代码质量优化
- 程序性能优化
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
…(img-ku9G3seK-1713381437945)]
《360°全方面性能优化》
[外链图片转存中…(img-9uoG9cuO-1713381437946)]
- 设计思想与代码质量优化
[外链图片转存中…(img-sWttNF1s-1713381437946)] - 程序性能优化
[外链图片转存中…(img-zM6oErGD-1713381437947)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!