在AndroidStudio中导入开源库一般就是一句话的事:compile 'xxx.xx.xx:xx'
。 实际上我们也可以通过这种方式来导入自己的开源库,方便自己的使用。AndroidStudio执行compile 'xxx.xxx.xx:xx'
会先到jCenter上查找该开源库,所以需要我们把自己的开源库库发布到jCenter上。无法直接在jCenter上发布开源库,要通过它的托管商–Bintray(Bintray托管着很多仓库,jCenter只是其中一个)来完成。
把自己平时经常用到的一些代码写到一起上传到jCenter,以后不管做什么项目一句话就能导入,算来还是一个比较实用的功能。
总体步骤概览
1. 注册Bintray账号并创建仓库
2. 准备开源库
3. 修改gradle文件
4. 编译并上传至Bintray
5. linked to jCenter
1. 注册Bintray账号并创建仓库
使用Bintray当然要先注册个账号,注册地址
我选的是Sign up with Github
。
注册登录之后应该是这个样子, 点击Add New Repository
- Name:仓库的名字,写了之后不能再改,记住该名字,后面上传时会用到;
- Type:仓库类型,选择
Maven
; - License:开源协议,随便选一个就好;
- Description:仓库描述,随便写;
点击Create
完成仓库创建,到此第一步完成。
2. 准备开源库
备好你想要上传的开源库,有两种方式:
- AndroidStudio中new一个project,然后在project中new一个Module,类型选择
Android Library
. - 直接修改当前Module的build.gradle(注意区分project的build.gradle文件和Module的build.gradle文件,前者在project根目录下,后者在对应的Module目录下)文件,将第一行的
apply plugin: 'com.android.application
改为apply plugin: com.android.library
,再把下面的applicationId "你的包名"
这一行删除(library是不允许有applicationId的).
两种方式最终结果都是得到了一个Android Library
类型的Module,在Module里添加你想要上传的开源库代码(我随便弄了一个,里面有个我常用到的加载App Icon的方法)。
到此第二步准备开源库完成
3. 修改gradle文件
还是那句话,注意区分project的build.gradle文件和Module的build.gradle文件,前者在project根目录下,后者在对应的Module目录下
修改project的build.gradle文件,添加下面这两句话
Maven Github地址:对应里面的说明选择使用的版本号
Bintray Github地址:对应里面的说明选择使用的版本号修改Module的build.gradle文件(这步有点乱,认真看)
需要配置3个信息:
- Bintray账号配置和Developer信息,告诉AndroidStudio传到哪及开发者介绍;
- Project信息,开源库的介绍;
- 上传配置,对以上3个信息的调用以及其他一些配置;
为了看起来条理清晰,我把能独立的部分都独立到单独文件里了,便于阅读,以下分别说明。
1. Bintray账号信息和Developer信息AndroidStudio
创建项目时默认会在project根目录下创建local.properties
文件并添加到了.gitignore
文件中(如果没有请自行创建并添加至.gitignore
中),在其中添加以下内容:
- bintray.user:Bintray注册的用户名
- bintray.apikey:Bintray的API key
- developer.id:开源社区的昵称(一般指github,或是使用的其他开源社区)
- developer.name:姓名
- developer.email:邮箱地址
查看API key方法:
2. Project信息配置
在开源库Module目录下新建project.properties
文件,添加以下内容:
- project.name:开源库名字
- project.groupId:项目组ID,写包名
- project.artifaceId:项目ID,写Module名
- project.packaging:打包方式,写aar
- project.siteUrl:项目主页,没有就写github地址
- project.gitUrl:项目仓库地址
- javadoc.name:javadoc主页显示的名称,写项目名字就好
3. 上传配置
在开源库Module目录下新建bintrayUpload.gradle
文件,添加以下内容:(内容较多,直接贴源码了,阅读可能不太美观)
1 | apply plugin: 'com.github.dcendents.android-maven' |
上传开源库的配置基本都是这样,不用改动什么,值得注意的是bintray
节点的repo
指的是第一步中创建的Maven仓库的名字,这两个名字要一致;此外开源库的版本号默认取的是project的版本号def projectVersionName = android.defaultConfig.versionName
,如果有需要也可把这两个属性抽取到project.properties
文件中,便于管理。
最后一个操作,在开源库Module的build.gradle
文件末尾中添加如下代码apply from: 'bintrayUpload.gradle'
来调用配置文件。
至此第3步配置gradle文件完成。
4. 编译并上传至Bintray
- 编译:打开AndroidStudio的Terminal窗口(一般在底部,没有的话点击
顶部工具栏
->View
->Tools Windows
->Terminal
),输入命令并回车:
gradlew install
等待一段时间后提示BUILD SUCCESSFUL
,表示成功。
- 上传,同样在Terminal中输入以下命令并回车:
gradlew bintrayUpload
等待一段时间后提示BUILD SUCCESSFUL
,表示成功。
至此第4步编译并上传完成。
5. Linked to jCenter
按照上面4步,发送include request之后等待Bintray团队审核,审核完成后会收到邮件和站内信。
至此第5步Linked to jCenter完成。
如果遇到问题,请参考这两篇文章
- Android 项目打包到 JCenter 的坑
- Android 发布项目到 JCenter 遇到的各种坑