Android library上传到jcenter
如何把我们开发好的Android library上传到中央仓库,供其他开发者方便使用,一行代码来进行依赖,而不必下载源码。
compile 'com.tubb.picker.library:picker:3.0'
如何才能做到这样呢,其实可以把我们的类库发布到中央仓库(下载中心)以供别人下使用。
当然直接下载类库的jar或者aar也可以,但如果能提供像maven那样方便的共享jar包再好不过了,gradle作为maven的替代物也提供了相应的功能。
下面就实践一下如何把自己的Android library共享给第三方使用。
1、上传到bintray
bintray作为下载中心,同时支持gradle和maven。那如何把我们产出的aar包上传到bintray呢,bintray为gradle提供了相应的插件,我们只需要利用bintray提供的插件编写gradle文件就可以了。
我们这里借助于bintray-release插件来将类库上传至binary,有兴趣的朋友可以针对bintray插件编写相应的gradle代码。
通过bintray-release插件极大的简化了“上传至bintray”这个步骤,具体可以library的build文件中加入如下代码。
apply plugin: 'com.novoda.bintray-release' // must be applied after your artifact generating plugin (eg. java / com.android.library)
buildscript {
repositories {
jcenter {
url "http://jcenter.bintray.com/"
}
}
dependencies {
classpath 'com.novoda:bintray-release:0.3.4'
}
}
publish {
userOrg = ‘tubb’ // 用户所在组织
groupId = ‘com.tubb.smrv’ // 包名
artifactId = 'swipemenu-recyclerview’ // library的名字
publishVersion = ‘1.0.3’ // 版本
desc = 'A swipe menu for RecyclerView’ // library描述
website = 'https://github.com/TUBB/SwipeMenuRecyclerView'
}
构建的命令变为
./gradlew clean build bintrayUpload -PbintrayUser=tubb -PbintrayKey=8346bd8f90a7c31c26a340590e7259b29315c0fa -PdryRun=false
其中bintrayUser为你在bintray上的用户名,bintrayKey为API key(用户中心可以找到)
命令执行成功后,bintrayUpload任务会为你把类库(aar、jar等)上传至bintray
2、Linked to jcenter
上传至bintray后你的类库还不能马上被别人下载使用,还有一个比较关键的步骤,需要Linked to jcenter,这一步需要审核(后续的版本升级不需要此步骤),一般在几个小时就审核好,耐心等待一下
3、最后一步,在jcenter上发布你的类库
一般第二步审核完后,就已经Linked to jcenter了,就会在类库主页出现红框所示图标,表示已经在jcenter上存在你的类库
点击红框图标,进入到jcenter页面,最后一步发布也是在这里完成,点击Include My Package按钮发布
接下来只要输入你的类库名字,点击发布就可以了,之后其他开发者就可以一行引入你的类库
compile ‘com.tubb.dotview:dotview:1.0.0’ // 由三部分构成 (包名:库名:版本号)
这里有一个完整的build.gradle,仅供参考 [ build gradle ]
后续类库的升级只需要执行第一步即可。