-
使用
bintray-release
发布一般项目到jcenter -
使用
bintray-release
发布编译时注解项目到jcenter
一、普通项目上传到jcenter
ok,首先你应该有一个待上传的项目。
那么我们这里模拟一个简单的项目。
可以看到我们的basetools是个Android library,主要用来存放一些工具,我们现在要将其上传到jcenter。
那么,对于你,应该已经有了这样一个Android library,处于待上传的状态。
(1)注册bintray.com账号
为什么要注册这个账号呢,因为jcenter()
属于bintray旗下的一个仓库。
我们的上传流程其实就是,从你的Androd Studio,到你的bintray 仓库,最后同步到jcenter仓库。
-
进入https://bintray.com/,注册账号。
-
注册完成后,需要邮箱激活;也可以选择第三方登录。
注册完成后,登录,这两步属于非职业玩家都能搞定的。
登录后:
登陆后,你可以点击Your Profile
->Edit
然后就能看到上图的界面。
点击API Key,就可以看到你一段key字符串,把这个copy下放一边,一会上传要用。
(2)引入bintray-release
项目的build.gralde
在你的项目的build.gradle添加bintray-release
的classpath,注意是项目的build.gradle,不是module的,针对文章开始的图即UploadJcenterTest/build.gradle
。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ‘com.android.tools.build:gradle:1.2.3’
classpath ‘com.novoda:bintray-release:0.3.4’
}
}
待上传moudle的build.gralde
来到你想要上传的module,针对文章开始的图即UploadJcenterTest/basetools/build.gradle
。
apply plugin: ‘com.android.library’
apply plugin: ‘com.novoda.bintray-release’//添加
android {
//保持不变
}
dependencies {
//保持不变
}
//添加
publish {
userOrg = ‘hyman’//bintray.com用户名
groupId = ‘com.hyman’//jcenter上的路径
artifactId = ‘basetools’//项目名称
publishVersion = ‘1.0.0’//版本号
desc = ‘Oh hi, this is a nice description for a project, right?’//描述,不重要
website = ‘https://github.com/hyman/basetools’//网站,不重要;尽量模拟github上的地址,例如我这样的;当然你有地址最好了
}
按照上面编写即可,细节有标识注释了,假设按照上述的编写,最终引入的方式为:
compile 'com.hyman:basetools:1.0.0
完成上面的配置后,就准备上传了。
上传
上传很简单,执行下面的代码即可
./gradlew clean build bintrayUpload
-PbintrayUser=hyman
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
user就是用户名,key就是我们刚才的让你保存的key,dryRun是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传。
ok,下面整理好上面的这段代码,运行即可。关于运行,你可以选择在Android Studio的Terminal面板进行,如下图。
点击底部的Terminal即可,注意下你当前的路径是当前项目下,然后enter运行。
然后就是等待,当运行完成,看到BUILD SUCCESSFUL
就没问题了,如果有什么问题呢,根据log排查下。
到此就上传完成了~~~
你可以访问https://bintray.com/你的用户名/maven
,即可看到:
看到我们上传的项目了,你可以点击进去看该库的一些信息,但是注意此时还不能够直接被引用。
点击进去该库,按照下图,点击Add To jcenter
然后随便写一下对你该库的描述,然后点击发送就可以了。
ok,到此就结束了,不过目前还是不能直接引用的,你需要等待bintray的工作人员审核,审核通过会给你发送站内Message,并且Add to Jcenter
那个按钮就小时了,此外你还可以根据你上传的groupId,访问该网站https://jcenter.bintray.com/你的groupId
例如https://jcenter.bintray.com/com/hyman/
如果可以引用,则能看到如下:
最后总结下整个过程,其实非常简单:
-
申请账号
-
引入bintray-release,在需要上传的module里面填写相关publish的信息
-
调用上传的命令
-
Add to Jcenter
提交审核
基本都是步骤化的东西,真正需要我们填写的也就publish里面几个信息。
ok,接下来看上传编译时注解的项目。
二、编译时注解项目上传到jcenter
如果你暂时不需要这个需求,其实没必要往下看,因为并不属于技术类文章,了解这里有写,可以收藏下,遇到需求再回来看就好了。
其实也很简单,按照步骤做就好。
我们这里找一个项目作为演示。
为什么说编译时注解的项目特殊呢?
因为它一般会涉及到多个moudle,比如上图,涉及到compilter
、permission-annotation
、permission-lib
。
我们在上传时,这3个module都要进行上传,这里暂不涉及为啥会这么分module相关知识。
其实利用bintray-release
上传的过程也很简单。
项目的build.gradle
首先针对项目的build.gradle,即图中MPermissions/build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ‘com.android.tools.build:gradle:1.2.3’
classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.4’
classpath ‘com.novoda:bintray-release:0.3.4’//添加
}
}
allprojects {
repositories {
jcenter()
}
}
//添加
ext {
userOrg = ‘hongyangandroid’
groupId = ‘com.zhy’
uploadName = ‘MPermission’
publishVersion = ‘1.0.1’
desc = 'a easy API to use runtime permission for Android M ’
website = ‘https://github.com/hongyangAndroid/MPermissions’
licences = [‘Apache-2.0’]
}
只要关注添加的部分,底部的ext主要是为了上传多个module统一管理的。
module的build.gradle
剩下就是compilter
、permission-annotation
、permission-lib
这三个module,这三个模块的处理其实是一致的:
-
apply插件
-
填写publish信息
apply plugin: ‘com.android.library’
apply plugin: ‘bintray-release’//添加
android {
}
dependencies {
}
//添加
publish {
artifactId = ‘mpermission-api’
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://i-blog.csdnimg.cn/blog_migrate/07e413cc6edc3c9da5639d2e92a20ce3.jpeg)
最后说一下我的学习路线
其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:
- 架构师筑基必备技能
- Android框架体系架构(高级UI+FrameWork源码)
- 360°Androidapp全方位性能调优
- 设计思想解读开源框架
- NDK模块开发
- 移动架构师专题项目实战环节
- 移动架构师不可不学习微信小程序
- 混合开发的flutter
Android学习的资料
我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。
330页PDF Android学习核心笔记(内含上面8大板块)
Android学习的系统对应视频
总结
我希望通过我自己的学习方法来帮助大家去提升技术:
-
1、多看书、看源码和做项目,平时多种总结
-
2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理
-
3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习
-
4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!
希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
5606)]
Android学习的系统对应视频
总结
我希望通过我自己的学习方法来帮助大家去提升技术:
-
1、多看书、看源码和做项目,平时多种总结
-
2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理
-
3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习
-
4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!
希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!