上一篇文章中介绍的是上传到本地仓库(通过maven上传到本地仓库),这篇来说说怎么上传到网络上的开源库,就像GitHub上的开源项目中提供的一行依赖,放到项目中AS就能直接从网络上下载到本地。
参考了鸿洋大神的博客:Android 快速发布开源项目到jcenter
AS默认使用的maven仓库是jcenter,查看项目根目录的build.gradle中有这行配置表示,如下图
这里如果只有jcenter配置,那么我们Module中的build.gradle中所有的依赖都是通过jcenter远程开源库下载的,这里也可以配置本地的maven路径,如果配置多个,AS会同时去配置的路径中查找,只要找到就可以。
这里要说的是,GitHub上的依赖,AS通过依赖去下载的是一个jar或者是一个aar,是不会把整个开源项目下载下来的,所以我们是把自己项目的打成一个jar或者aar上传到jcenter库,然后jcenter就会生成一个路径,这个路径就是我们在AS中依赖项目的那个路径,通过它AS就能下载对应的jar或者aar到本地。
jcent这个maven库是有bintray来维护的,所以我们要去bintray网站上注册账号,创建对应的jcenter库,然后将我们自己的Android项目上传上去,注册地址:bintray,进入这个页面以后是因为的,这里要注意注册的时候要使用右边的链接去注册,左边的链接注册完成登录以后常见库之前要先创建一个组织,会导致后边的很多问题
注册完以后,登录上要创建一个Repository(仓库)
仓库详情页面
这里面的package的意思就是我们上传的Android库,一个仓库里可以上传很多个Android仓库
保存key
在我们注册完账号以后,网站会生成一个唯一的key,我们先保存下来,后面的操作会用到,步骤如下图
首先点击Edit
然后API key
输入密码就能过看到了,保存下了,这个不能让别人看到。
到这里页面的操作告一段落,接下来是在AS上配置脚本上传本地库的aar或者jar到这个库里面,上传完毕之后在这里就会显示出我们上传的库文件的具体内容。
首先要明确的一点是,既然是上传aar或者jar,就需要我们的module是一个Library,只有是一个Library才能打成jar或者aar,接下来我们要做的操作就是配合脚本上传到我们项目到刚才生成的jcenter库中。
关于脚本的配置有两种方式,一种是使用gradle-bintray-plugin
插件来配置,一种是使用bintray-release
插件来配置,这两种我都试了一下,发现使用后一种方式要简单,所以推荐使用bintray-release
插件来配置脚本。
首先,在项目根目录的build.gradle中添加bintray插件classpath 'com.novoda:bintray-release:0.3.4'
,如图
然后在要上传项目下的build.gradle中添加插件apply plugin: 'com.novoda.bintray-release'
,如图
最后在第二步中相同的build.gradle文件的最后添加如下配置:
publish {
userOrg = 'staticzhang'//bintray.com用户名
repoName = "csdn" //bintray上常见的仓库的名字
groupId = 'com.emm'//groupId 一般为包名
artifactId = 'util'//artifactId 一般为项目名称
publishVersion = '1.0.0'//版本号
desc = 'this is a util'//描述,不重要
website = 'https://github.com/staticzh/util'//网站,一般是GitHub的项目地址,一定要是可以访问到的地址
}
红色框框的部分是额外添加的内容,关于groupId
和artifactId
我的上一篇文章中有介绍点这里。
这里就不在说明现在脚本就写好了,其实就做了两件事,一:添加插件,二:给字段赋值。原理就是我们添加的插件里已经写好了上传到jcenter的脚本,但是每个人的一些特有的字段需要自己定义,比如用户名、仓库名等,所以这些字段就需要我们自己来配置,接下来就是执行脚本。
在要上传项目的根目录执行以下命令:gradle clean build bintrayUpload -PbintrayUser=staticzhang -PbintrayKey=xxxxxxxxxxxx -PdryRun=false
PbintrayUser
是你的用户名,PbintrayKey
是在上面保存的key,dryRun
是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传。
执行完脚本以后,提示BUILD SUCCESSFUL
表示上传成功,再来看bintray网站创建的对应的仓库中
已经出现了util这个库,点击进入看看详情
可以看到了左侧的下载链接,但是此时还不能用,要点击右边的Add to JCenter
按钮,通过审核才能够使用,点击它之后,会添加一个描述,可填可不填,然后发送,等待审核,当Add to JCenter
按钮消失了,表示审核通过,就可以通过网络下载到你的库了。