我爱编程

论一个小白如何将自己的开源库发布到Bintray的JCenter

2018-04-15  本文已影响0人  GlossimarWan

在前一阵子的某一天,我不小心撞上了JitPack的版本升级而导致的JitPack炸了,于是无法把自己的库发布成有效的开源库,无奈之下,我终于下定决心转战随缘发布的JCenter,开启了我为了发布放弃高数,放弃大物,放弃现代,放弃离散的漫长踩坑之路。。。

P.S.

(不然的话GitHub和Bintray能卡死你)

踩坑一:在Bintray上注册(这个真的是血泪史啊。。。务必看完再注册)

因为在Binatry版本升级后在注册界面会有一个巨大的绿色框框,我想也没想就注册了,结果,发现自己注册出来了一个团队,但是你要是创建个人的开源库就要个人的账号,注册在右上角的sign in !!!注册地址点这里!!!

向前迈进:

注册完了以后要生成自己的maven库,这个库用来存放你的项目(闲扯一句,就算你的项目与JCenter注定无缘,不怕,只要在gradlel的build里面加上你maven库的地址再加上你库的依赖,依然可以使用这个库)


踩坑二:maven的m的大小写

你的库的类型一定要选Maven名字一定要叫maven(因为AS上传Library时会默认上传到名叫maven类型为Maven的库)

向前迈进:

新建完maven库就要开始新建上传到Bintray的Library了,怀着无比激动的心情想着自己很快就有第一个开源库了,然而事实证明之前的都在热身,这才是开始踩坑的血泪史。。。

踩坑三:如何新建Library以及Library下面该放些什么

(唔。。。接下来我的时间轴会有点混乱)我按照网上的流程写完了gradle里面的配置后,无比憧憬的等待Bintray审核通过的邮件,等了大概两天吧,终于收到了成功加入JCenter的邮件,然后我把依赖加到项目里面,gradle的build也通过了,但是在Activity里面并找不到自己的类,后来某位大佬终于告诉了我真相:

把你想上传的东西都要加在自己新建的Library里,而不是app里面(切到project模式可以看见),包括你的想上传类,如果你的类有自己定义的属性或者用到了app/src/res/values的文件,也要一并加到library/src/res/values里面,因为开源库是不会上传你app里的内容。

那接下来我们就跳过Library里面类什么都没有的version1,以及default-pom.xml莫名无法生成的version2(中间会稍微提一下解决方法),直接到成功发布的version3好了.P.S.如果AS在每次打开时都会在右上角提醒你更新的话(老版的settings里面没有Android SDK也很不方便),先更新吧,因为我们接下来的配置都用的是最新的版本,如果更新完,又提醒你更新Plugin也一起更新吧


如果在更新时是这个报错,建议你去设置网络代理,这个网上的解决方案很多,或者看我的另一篇博客(正在更),我就不赘述了。。。

继续向前:

新建Library。右键点application,然后选New->Moudle->(在弹出来的提示框里选)Android Library就可以了。


至于Library的名字,你随意吧,但是别起和你application很像的名字,也别起和你项目没什么关系的名字,因为gradle依赖里面会有一部分是Library的名字。

这里我讲解一下Gradle依赖的每一部分的来历:

  1. 首先把你要传的类放在你Library->src->main->java件夹的下面(注意,我切的是Project的模式)。
  2. 如果你的类有自定义的属性,要把相应的attrs.xml文件移到你Library->src->res->values文件夹下面(如果你的类涉及到app中values的colors什么什么的文件,建议也一起加到你Library下面,在Library中加Values文件夹下面的文件时,最好新建,不要去把app中的拖到Library里面,因为Build的时候可能报错
  3. 最后我们我们把这些都准备好后,就可以Share Project On GitHub了。当然了,至于怎么在AS上把项目推到GitHub上我就不多说了,网上搜一搜教程很多的,当你上传成功以后你就会看见你AS的右上角会有一个上传成功的提示,这个时候你就可以去你的GitHub上看你的项目了
  4. 至于我gradle里免得配置基本上都是参考的这篇博客的: AndroidStuio快速发布开源项目到Jcenter/Bintray.那下面我就直接贴代码喽。
 buildscript {
    repositories {
        jcenter()
 }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        // 添加下面两行代码即可。
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
        //就上面的这两行
    }
 }

 allprojects {
     repositories {
        jcenter()
    }
 }

 task clean(type: Delete) {
    delete rootProject.buildDir
 }
  1. 先说一下apikey:

  2. git仓库地址:
    首先打开你项目在GitHub里的页面,然后点左边的一个绿色的一个Clone or download的框框,然后把它切换到SSH,这时现实的就是你git仓库的地址


把Library上传到Bintray上

      gradew install                              //系统配置gradle的用户环境
      gradew bintrayUpload                        //上传到Bintray

或者在AS的右边有一个Gradle,用里面的插件bintrayUpload来上传也可以,但是要切到gradle控制台里看是否BUILD SUCCESSFUL.
(感觉命令行更好用些)

去你Bintray的maven仓库下进行确认是否上传成功

如果你到Bintray上发现你的项目存在,但是下面没有Gradle的依赖,大概就像这样:
正常的库


不正常的库(假装有图)

这个。。。由于换电脑的原因,之前留的图片全都没备份就把上一个电脑的系统重装了(啊啊啊,暴风式哭泣。。。
总之就是,上面那张图的最下面的gradle可以复制的一段代码消失了,没有可以导入的库的代码

如果有可复制的依赖代码,那么说明你的库就已经上传成功啦,要是没有的话建议去看一下Android Studio 的gradle控制台在run的时候有没有报错,比如说哪一个文件没有生成或者生成的时候出现了问题之类的。

最后一步:添加到jcenter,提交给管理员审核

最后一步最关键的审核你和管理员的缘分(哈哈哈,开玩笑的)其实我感觉我都还好,没遇到传说中审核没通过的事情,基本上提交了以后等一阵子(一般是1~3天都会有回复,如果没有通过我记得会给原因。。。吧)

提交步骤很简单,在页面左侧有一个 Linked to(0), 然后你只要点下面的Add to JCenter 按钮就可以,然后在弹出的提交界面写上对应的信息就好啦,然后就可以等管理员审核过后给你在Binary上绑定的邮箱里面发通知邮件咯

啰嗦一些可能遇见的小问题

然后基本上就是这些啦,要是还有什么为问题的话可以在评论区留言呀。

这是我第一次写博客,啰里八嗦说了一大堆,措辞也要改进,而且自己也拖了好久,唉,感觉自己好菜啊,如果有什么不足之处希望大家直接说好了,我是一个耿直girl,不会介意的,最后就是蟹蟹大家能一直看到最后,又听我啰里八嗦一大堆。

哈哈(尬笑

上一篇 下一篇

猜你喜欢

热点阅读