Mac Android Studio将项目(library)上传到jcenter

我们经常在gradle引用,却不知道是什么原理,今天跟着代码君,教你开源自己的项目供别人使用,像这样

compile 'com.jzp:DemoJCenterLibrary:1.0.0'

参考文献:鸿洋大神的博客
鸿洋大神写的博客比较简洁干练,可能不适合初级入门者,所以在此进行补充,把我踩过的坑,都写出来,供大家借鉴参考

说明

  1. 上传项目用的插件有两种,gradle-bintray-plugin 和 bintray-release网上有很多资料是介绍gradle-bintray-plugin的,但是代码君亲测了一下,gradle-bintray-plugin步骤非常繁琐,踩了很多坑,等把文章写完,在末尾把踩过的坑填一下
  2. 本文主要介绍的是 bintray-release ,这个步骤比较简单,和gradle-bintray-plugin比较,已经可以算是傻瓜式上传啦。
  3. 流程大致是这样的,首先创建自己android studio 的项目,然后上传到bintray仓库,最后上传同步到jCenter仓库,供别人使用自己的库文件,好啦,下面开始划重点啦!

一、新建一个项目,就是要开源的项目

  1. 新建工程(new project)UploadjcenterTest

  2. 新建自己要共享的库(new model)mylibrary

  3. 在库文件里新建一个mToast类,此类的作用是开源自己写的toast提示框

  4. 如果有自己的库要上传,可以省略1,2,3步骤,用自己的库
    Create library

二、注册bintray.com账号,搭建自己的仓库

为什么要注册这个账号呢,因为jcenter()属于bintray旗下的一个仓库。所以我们要上传jCenter就必须要有bintray账号

  1. 进入https://bintray.com/,注册账号。
  2. 注册完成后,需要邮箱激活;也可以选择第三方登录。

注册成功后进入准备工作,这些后期在配置android studio中的gradle要用到

  1. 获取API key
    API key
  2. 记住自己的用户名和密码,后面上传要用

  3. 创建一个组织(organization)和maven项目,这个是必须的,缺少此步骤,后面会报错,先创建出来,后面我再解释

  4. 创建organization--------jzplibrary (随意命名


    jzplibrary
  5. 创建maven库-----maven(必须叫maven而且是小写)


    find maven

    create maven
  6. 创建成功效果图


    success

三、Android studio gradle的配置,及上传

  1. 在你的项目的build.gradle添加bintray-release的classpath,注意是项目的build.gradle,不是module的,即UploadJcenterTest/build.gradle
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
        classpath 'com.novoda:bintray-release:0.3.4' //添加的
    }
}
build.gradle
  1. 在Module:mylibrary(你要上传的库)的build.gradle中配置参数
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//添加
android { 
//保持不变 
} 
dependencies { 
//保持不变 
} 
//添加
publish {
    userOrg = 'jzplibrary'//bintray.com自己创建的组织名称
    groupId = 'com.jzp'//项目路径
    artifactId = 'toastlibrary'//项目名称
    publishVersion = '1.0.0'//版本号
    desc = 'Oh hi, this is a nice description for a project, right?'//描述,不重要,随便写
    website = 'https://github.com/jiangzepeng/MyModel'//随便写;当然有github地址最好了
}
mylibrary
  1. 按照上面填写的,最后如果成功我们引入的方式为

compile 'groupId : artifactId : publishVersion' //引入原理
compile 'com.jzp:toastlibrary:1.0.0

  1. 以上步骤做完就可以开始上传了,上传的代码,执行在android studio的终端上terminal,

    PbintrayUser--填写bintray.com用户名
    PbintrayKey--填写bintray.com中的API Key

Mac版

./gradlew clean build bintrayUpload -PbintrayUser=jzp -PbintrayKey=xxxxxxxxxxxxx -PdryRun=false

Window版

gradlew clean build bintrayUpload -PbintrayUser=jzp -PbintrayKey=xxxxxxxxxxxxx -PdryRun=false
终端
  1. 上传成功会提示BUILD SUCCESSFUL

四、bintray.com 加入到jcenter中

  1. 登录到bintray.com,成功的效果图


    bintray.com
  2. 把项目添加到jCenter中,点击add to jCenter


    jCenter
  3. add to jcenter


    add to jcenter
  4. 好了,到此基本算成功了,只需等待bintray的工作人员审核,我试过,大概半天差不多就有结果了,审核后会发送站内消息和邮箱通知你

  5. 审核通过后,可以根据你上传的groupId,访问该网站https://jcenter.bintray.com/加上你的groupId;例如访问https://jcenter.bintray.com/com/jzp/就可以找到自己的库了

  6. 如果只想内部引用的话在项目的gradle中配置自己仓库的url,Maven的url为https://dl.bintray.com/jcenterupload/maven/,然后compile到自己项目中

compile 'com.jzp:toastlibrary:1.0.0'

gradle

配置
  1. 引入成功的效果图
成功的效果图

番外篇

一、bintray-release方式踩过的坑

  1. HTTP/1.1 404 Not Found [message:Repo ‘maven’ was not found]
    原因:注册完bintray.com,未创建jcenteruploadTest组织和maven

解决方案:执行上面的第二点的第三步骤

参考文献:http://blog.csdn.net/tmac2000/article/details/53261141

二、gradle-bintray-plugin方式踩过的坑

  1. Error:No service of type Factory available in ProjectScopeServices.

原因:classpath com.github.dcendents:android-maven-gradle-plugin:1.3版本太低

解决:更新到1.4.1以上就可以解决问题
参考文献:http://www.jianshu.com/p/c4f4894ad215

  1. 执行终端命令是,提示command not found,可能没编译进来,重新rebuild一下就好

三、参考文献

  1. 英文文献(很多基本都是参考着两篇)
    1. https://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en
    2. https://www.virag.si/2015/01/publishing-gradle-android-library-to-jcenter/
  2. 中文文献
    1. http://www.jianshu.com/p/e01f2005893e(bintray-release手动上传)
    2. http://www.jianshu.com/p/d75759435833(gradle-bintray-plugin方式上传)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容