Android上传开源项目(Library)到Jcenter

前言

在android开发中,当我们使用三方库时,如使用okhttp网络库,直接在gradle中添加一句依赖,"compile 'com.squareup.okhttp3:okhttp:3.6.0'",让我们在使用时很方便。当时还在疑惑,为什么只添加一句依赖,就会直接下载类库到项目中,还可以很方便的使用。后来在微信公众号上看到"Android快速发布开源项目到jcenter"后,才恍然大悟,原来如此。

然后决定自己去试一下,上传一个开源项目到jcenter,于是我就参考上面的文章,一步一步去执行了,这过程中曲折就不说了,但是...但是,就在成功上传项目到jcenter后,最后一步,该点击"Add to jcenter"按钮。可是,我怎么也找不到这个"Add to jcenter"按钮。。。当时各种谷歌,各种百度。。。也没有找到解决方法,当时我就感觉,我可能上了一个假的网站。。。

后来,时隔快两个月之久,无意间又看到"Android上传项目到jcenter"的文章,才发现,我当时确实是上了一个假网站。。。然后根据真网站,继续操作,也出现了很多问题。故写此文章将心酸历程记录下来,让各位老司机少走弯路。

本文采用鸿洋推荐的bintray-release这个插件,感觉比gradle-bintray-plugin要方便很多。(可以少写很多代码,哈哈。)

一,申请bintray账号

jcenter是一个有bintray.com维护的一个仓库,若想发布项目到jcenter,首先需将项目上传到bintray。我们需要在该网站上注册账户,这里建议直接使用github账户登录,完成注册即可。注册网址:https://bintray.com

走到这里,第一步就错了,我当时就是在这个网站上注册的账户,导致后来一直找不到"Add to jcenter"按钮。

个人免费版注册网址:https://bintray.com/signup/oss

这两个网站区别不是很大,需要注意。这里建议直接使用github账户登录,完成注册即可。登录成功后,点击网站右上角用户名,选择"Edit Profile"进入个人信息编辑页面,点击"Api Key",输入你的密码,即可查看Api Key信息,记录下该信息,后面会用到。操作如图:

二,在项目中引入"bintray-release"插件

首先你需要有一个待上传的项目,这里我是用的是customprogressbarlib,一个自定义带有进度显示的ProgressBar。

  • 项目的build.gradle

    在项目的build.gradle中添加bintray-release插件,注意:是项目的build.gradle,不是module的。

      buildscript {
          repositories {
              jcenter()
          }
          dependencies {
              classpath 'com.android.tools.build:gradle:2.2.3
                //添加
              classpath 'com.novoda:bintray-release:0.3.4'
          }
      }
    
  • 待上传module的build.gradle

    找到待上传module的build.gradle,按照下面的编写即可,注释很详细,如果按照下面的编写,最终引入的方式为:compile 'com.listenergao:customprogressbarlib:1.0.0'

      apply plugin: 'com.android.library'
      apply plugin: 'com.novoda.bintray-release'  //添加
      
      android {
          //保持不变
      }
      
      dependencies {
          //保持不变
      }
      //添加
      publish {
          userOrg = 'listenergao'//bintray.com用户名
          groupId = 'com.listenergao'//jcenter上的路径
          artifactId = 'customprogressbarlib'//项目名称
          publishVersion = '1.0.0'//版本号
          desc = 'With a schedule, according to the horizontal direction or circular custom progress bar'//描述,不重要
          website = 'https://github.com/ListenerGao/CustomProgressBar'//网站,不重要
      }
    

三,上传到jcenter

上传很简单,执行下面的代码就可以了。

  • win系统:
`gradlew clean build bintrayUpload -PbintrayUser=listenergao -PbintrayKey=填入自己的Api Key -PdryRun=false
`
  • mac系统:
./gradlew clean build bintrayUpload -PbintrayUser=listenergao -PbintrayKey=填入自己的Api Key -PdryRun=false

user就是你bintray的用户名,key就是上面让你保存的Api Key,pdryRun是一个配置参数,当为true时,表示会运行所有环节,但不会上传。

这时我们打开Android Studio的Terminal控制台,注意是在当前项目下,输入上面的命令,然后enter运行。

接下来就是等待了,等到你看到如下图所示时,证明你上传成功了。


这时,你访问:https//bintray.com/自己的用户名/maven,即可看到:


看到我们上传的项目,点击进去查看库的信息,注意:此时还不能直接被引用。进入后,点击"Add to jcenter"按钮。


点击"Add to jcenter"按钮后,进入描述页面,写一下对该库的描述即可,点击send按钮。到此,终于完成了。我们只需要等待bintray的工作人员审核,审核通过后会给你发送站内Message,并且"Add to jcenter"按钮也会消失。此外,审核通过后,你还可以根据你上传时的groupId,访问该网站:https://jcenter.bintray.com/com/groupId, 例如:https://jcenter.bintray.com/com/listenergao,如果可以引用,即可看到:

四,上传中遇到的问题

上传过程中,可能需要下载gradle的一些依赖,速度比较慢。

JDK版本建议使用1.8,否则会出现:Unsupported major.minor version 52.0错误。

代码中如果有中文注释,会提示GBK乱码,别问我怎么会知道。。。

提示找不到class或者intface或者enum,解决办法如下:
用editplus把你文件的编码格式改成UTF-8,不要用notepad,我用了没效果。

提示找不到用户名和APIKEY,原因是大小写一定要统一。

提示HTTP/1.1 401 Unauthorized [message:This resource requires authentication]
apikey 和 用户名的值写错了。

若是提示BUILD FAILED 也很正常,看错误信息 Could not create package 'listenergao/maven/customprogressbarlib': HTTP/1.1 404 Not Found [message:Repo 'android' was not found] 仓库不存在,这里需要我们在bintray上简历仓库,name和type写maven即可。(我参考的文章中没有提到这一步)

基本上就这几个错误,关于其它错误,大家可以进行谷歌,这是我在操作中遇到的错误。

文章首发地址:http://blog.csdn.net/listeners_gao/article/details/55655018

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容