Android开发爱上AndroidAndroid进阶

将自己的项目发布到jcenter(超详细~)

2018-03-22  本文已影响804人  af83084249b7

起因

Android 开发的各位小伙伴,一定对gradle的compile不陌生。我们日常开发中必然要引入很多的类库(如okhttp,Glide,retrofit,rxjava等等),进行项目支持。
那我们是不是也可以自己写一些类库,让别人使用?这个一定很酷!退一步来说,我们可以将自己的module打包上传jcenter(这个后续会介绍).以后通过compile方式引入依赖。这样的话,显得即整齐又干净。
那么,在流程之前,我们需要来了解几个关键词,方便后续的思路理解。

关键词

aar:(Android Archive)包是一个Android库项目的二进制归档文件。他和jar文件的不同在于,jar包里面是类文件,而我们的aar包在jar包类文件基础上包含了所需要的res等资源文件。
bintray : 这是jforg公司的一个二进制仓库,我们的module最后是转化为aar文件的。然后我们可以借助插件(后续会介绍),将我们的aar文件上传到这个bintray仓库。但是注意,此时我们的项目对外不可见。
jcenter:这是android studio 默认依赖的maven远程仓库,我们的aar文件上传到bintray之后,可以通过add to jcenter这个选项,将我们的aar(也就是最早的module内容)发布到正真的远程仓库。这个过程需要审核,几个小时到一天左右审核时间。

流程

注册bintray

明白上述概念之后我们就可以开始操作啦。
首选,我们需要一个bintray帐号。注册地址:https://bintray.com/signup/oss (个人版注册地址),切记不要直接上jcenter官网注册,官网默认注册是组织注册的。这样的话不能直接 add to jcenter。所以,我们需要到个人版注册地址进行注册。而且,邮箱的话推荐用谷歌邮箱,国内很多邮箱没有被识别,无法注册。

注册页面:
图片.png
配置上传

首先在我们的项目gradle文件添加bintray-release插件依赖

插件页面
  dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
     //下面对应gradle4.1及以上,4.1以下用 classpath 'com.novoda:bintray-release:0.3.4' 
    classpath 'com.novoda:bintray-release:0.8.0'
     }

接着我们在我们要打包的module引用依赖,以及配置信息。并同步构建信息

引用和配置
   //推荐放在module的gradle依赖文件的开头
   apply plugin: 'com.novoda.bintray-release'


   //推荐放在module的gradle依赖文件的最后面
   publish {
   //userOrg这个是用户的组织,我们创建的是个人帐号,也就是我们的用户名(后续会介绍,必须一致,改成你自己的bintrayName)
   userOrg = 'jkt'
   //我们的组id 类比'com.github.bumptech.glide:glide:3.7.0' 中的 com.github.bumptech.glide 这一部分
   groupId = 'com.jkt'
   //原型id 类比'com.github.bumptech.glide:glide:3.7.0' 中的glide这一部分
   artifactId = 'jcenter'
   //版本号 类比'com.github.bumptech.glide:glide:3.7.0' 中的3.7.0 这一部分。很重要,我们在更新aar文件的时候需要提升版本号,类似更新apk
   publishVersion = '0.0.1'
   //描述,大致介绍自己的类库
   desc = 'Oh hi,It is name nice project ,is not it?'
   //网址,可以写自己的github项目页面等
   website = 'https://github.com/holdmyown'
}

最后在Android Studio的命令行输入:

   //BINTRAY_USERNAME :你的bintray帐号名字 
   //BINTRAY_KEY : 你的bintray帐号对应的Key
   //上面两个,我会上图介绍
   gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
Bintray名字

按照图片规则,找到自己bintrayName


图片.png
BintrayKey引导
图片.png

点击edit profie进入如下页面


图片.png

点击 API key

输入密码
复制Key
图片.png

至此,我们完成了帐号注册,同时有了Name和Key。接着,我们在项目根gradle添加了bintray-release插件。之后,我们在指定的module引用插件以及添加配置。最后,我们通过命令行将我们的项目发送到了bintray。
但是,我们还缺少一步。我前面提到,bintray是个二进制文件仓库,只是让自己访问。我们还需要
add to jcenter。在几个小时的审核通过之后,所有人就可以compile依赖我们的类库啦。

Add to jcenter

首先找到我们命令行提交到bintray之后的aar文件。

bintray帐号aar文件(点击进入查看详情)
图片.png
aar详情页面

左下角是maven、gradle、lvy几种依赖,可以看到我们可以使用compile 'com.jkt:jcenter:0.0.1' 进行依赖了。但是,我们还需要最后一步。点击右下角的add to jcenter按钮,提交到jcenter仓库。几个小时审核通过之后,任何人都可以通过网络compile我们的类库了。
大功告成。

总结

上面已经详细介绍了,aar、bintray、jcenter等东西。大家看完之后有任何疑问,请评论留言。如果觉得对你有帮助的话,希望大家点赞、评论和转发。帮助到更多的人,也支持我继续创作。谢谢大家~

自己Github有更多原创干货,大家可以了解:https://github.com/holdmyown

上一篇下一篇

猜你喜欢

热点阅读