最后
**要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
官网也有介绍如何通过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生成的密钥对,没有将公钥上传到官网验证包指定的服务器地址,通过右侧的日志我们也可以看到,系统对一些可以上传公钥的服务器进行验证时没有发现我们上传的公钥,于是就报错了。
解决方案也很简单,就是从右侧选一个服务器地址,将我们本地生成的公钥上传上去即可。
上传的命令如下:
gpg --keyserver http://keys.openpgp.org:11371 --send-keys xxxxxxxx
公钥也是要最后8位即可。
再次点击"Close"后可以看到,一系列的验证成功了。
然后我们点击"Release"按钮,将包正式地发布出去:
包发布后,并不能马上在Maven仓库看到,同样需要审核。
你会发现在原先的Issue里多了一个系统发送的Comment:
也就是你在https://s01.oss.sonatype.org/中过个几分钟就可以搜到你的包,如图的方式:
但是要在真正的Maven仓库(也就是通过implementation方式引入的库),还需要等待差不多2个小时。
到时候你可以通过https://search.maven.org/查询你的包,看看是否能查询到,比如通过包名的方式:
好了,把包上传到Maven Central的方法介绍完成!!!
====================================================================
1. publish
双击"publish"准备上传包的时候,脚本会到工程的build\outputs目录下寻找包,而且是"-release"结尾的包:
这个在"publish-mavencentral.gradle"脚本中有写:
所以我们如果要上传新的包,正确的步骤是先把sdk工程下的build目录删除,然后通过gradle脚本的assembleRelease重新打包release的包:
release包打出来后再通过publish脚本上传。
2. 删除Maven Central已上传的包
目前来说网站没有提供直接的方法删除,国民程序员想到的方法有两个:
结尾
如何才能让我们在面试中对答如流呢?
答案当然是平时在工作或者学习中多提升自身实力的啦,那如何才能正确的学习,有方向的学习呢?为此我整理了一份Android学习资料路线:
这里是一份BAT大厂面试资料专题包:
好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!