有时候我们使用其他的library包,直接下载下来或者在build.gradle中添加依赖,使用起来非常方便,这个时候想自己做一个library包给别人用,应该怎么做呢?这个时候我们就需要用到jcenter。简单的来说jcenter就是一个仓库,而bintray就是工具把我们写好的代码通过bintray上传到jcenter。用户用的时候,就是通过gradle中的一个引用,去仓库下载代码。
首先注册bintray,配置相关资料
首先我们要注册一个bintray,注册网址https://bintray.com/signup/oss。直接点击进行注册,注册的时候需要用到一个邮箱,这里邮箱不能使用qq, 163等邮箱,需要用到谷歌和outlook邮箱,关于谷歌账号和翻墙,相信对于我们开发者来说esay了。
注意:注册网址不是https://bintray.com/login 后面这个地址注册的是企业账号,需要审核1一个月还有试用期,如果不小心注册了企业账号,也可以注销再重新注册个人账号。
下面我们就开始注册bintray账号,如果有bintray直接略过这一步
账号注册好了之后,请进入:https://bintray.com/profile/edit ——
请点击 API Key,接下来
请点击箭头所指按钮,对 API Key 进行复制,当然如果你想点击 Show 看一看自己的 key 我也不拦着你。你可能会有一个疑问 API Key 是什么?理解起来很简单,既然 square 公司发布了 okhttp3 的 3.8.1 版本,那么我可不可以在前面所提到的 module 中的 gradle 中把 groupId 改成 okhttp3 的 groupId,然后上传新的版本覆盖它呢?当然不可以,一点是 groupId 是唯一的,另一点就是如果你想上传 square 公司的 okhttp3 项目的话,一定要有它的 API Key,所以 API Key 就类似一个账号密码的功能,来保障开发者项目的唯一性。
个人中心界面,如下图:
我们需要创建一个仓库,来存放我们的开源项目,所以点击Add Repository会跳转到如下界面
请务必将 Name 写成 maven,因为这样可以帮你省去很多麻烦,然后 Type 务必选择 Maven。创建好 repo 后,请进入 repo 中,然后:
请点击 Add New Package,这里请注意,以后如果你有新的 library 需要上传到 jcenter,你不需要新建新的 repo,只需要进入 Maven repo 后,点击 Add New Package 即可,接下来就是填入相应的信息并确认即可。
点击我们创建的仓库:
点击Add New Package:
需要注意的是Name需要和artiufactid一样,否则会上传失败
完成你的 library
project 下 build.gradle
这是在 project 目录下的 build.gradle 文件下添加以下依赖:
module 下 build.gradle
请在你的 module 下的 build.gradle 中添加如下依赖:
下面我们就开始上传我们的开源项目了,打开android studio的Termainal界面
执行如下代码
gradlew clean build bintrayUpload -PbintrayUser=**** -PbintrayKey=********** -PdryRun=false
需要注意的是每一个-前面都需要加上空格
gradlew clean build bintrayUpload
-PbintrayUser=jcenter用户名
-PbintrayKey=apikey就是刚刚查看到的
-PdryRun=false 写false代表要上传
然后回车,即可,等到上传。如果按回车,无法执行,那么你需要将你的gradle添加到系统的环境变量中,再执行此代码就可以了,等待几分钟,保证你的电脑有网络,当你看到BUILD SUCCESS那么久上传成功了,上传成功之后,进入到你的仓库中就可以看到你上传的项目了
add to jcenter
理想情况下你的库已经上传到 bintray 上了,但是此时你的库还不是公有的,需要手动将库从你目前的私人 repo 同步到 jcenter 中,打开你的 repo 并进入你的项目中,在如下的位置会有一个 add to jcenter 的按钮:
在点击 add to jcenter 之后,就会进入一个提交页面,你可以在框框内填上一些描述你库功能的文字,然后就可以提交了:几个小时审核之后,就可以正常调用了,最后就是棒棒的
注意:
(1) 在上传的过程中提示失败为:org.apache.http.conn.HttpHostConnectException: Connection to https://api.bintray.com refused
这个是网络的问题,多重新上传几次,可能是要上传10多次。
(2)如果在bintray中找不到add to Jcenter,是因为你注册的是企业账号,可以取消重新注册为个人账号
最后欢迎使用本项目:compile 'com.apeng:EsayPermissions:1.0.0'