AndroidStudio发布代码到JCenter

前言

作为一个有了一定开发经验的程序员,你一定或多或少封装了一些库,用以应付一些日常的通用功能,如果每次都拷贝这些代码,或者从Git上clone下来,未免过于麻烦,且不优雅。如果能够像我们平时使用的一些开源库一样,直接api/implementation 'xxx:xxx:xxx',那就方便了,比如像这样

implementation 'com.android.support:appcompat-v7:28.0.0'

这种形式的库引入,你一定不陌生,本篇文章,将说明使用bintray-release(顺便说一下,有其他的插件也可以发布,不过这个应该是最方便的了)来发布你的代码到JCenter

其实关于这个内容的帖子有很多,一搜一大把,不过由于AS版本、Gradle版本、bintray-release版本的不同,以及bintray网站自己的更新,导致帖子里面的流程和需要填写的参数等,都无法完美匹配现在的要求。

本篇文章,将结合网上的资料和我自己的探索,给出一个现阶段可用的发布流程
本篇文章写于2019/08/20,如果你看到它时,已经过了很久,请找更加新的流程攻略做参考


内容提要

本篇文章是使用bintray-release,在AndroidStudio里上传自己代码到JCenter的流程攻略


注册bintray账号

bintray注册一个账号,请注意,这里迎来第一个坑点,不要看到那一坨显眼的原谅色按钮,就着急着点进去,我们要发布的是开源库,所以请点击For an Open Source Account

第一个坑点

下一步没啥好说,自己填该填的资料注册,你也可以通过Github/Google/Twitter账号登陆(程序员没哪个没有Github账号的吧。。。),我是使用Github直接登陆的


你的主页

如果你看过其他攻略,这时候应该要开始教你“夸夸夸”的建组织建仓库了,这里我们先不急,我们先认识一下自己的主页,长这样


主页

如果一进来不是这样的,在一号区域(这个是一定有的)点击View Profile就能进来了

一号区域

进入主页、编辑账号(设置)、管理你的组织都在这里

二号区域

仓库区,你的代码,就可以上传到你在这里创建的仓库。这里需要注意

  • 1.这里不是唯一可以存放代码的地方
  • 2.我看到有帖子说,如果创建仓库时,仓库类型选择Maven,仓库名称也必须叫做maven(你可以看到我为了测试,也创建了一个这样的仓库),但是实际上不需要,你爱叫什么名字,就叫什么名字(当然这个会不会是因为那位博主在当时试的时候,确实就是那样的,也未可知)
三号区域

组织区,你可以在这里创建你的组织,然后进入创建好的组织里面,可以在里面去创建代码库(这就是为什么前面说二号区域不是唯一可以存放代码的地方)


创建代码库

创建组织

如果你的库需要多人协作完成,希望其他人也能进行代码的发布,那么你需要在一个组织下去创建仓库,如果你是一个人玩,那不用看这段

点击下图这个按钮,开始创建组织


创建组织
  • 创建组织

直接创建一个新组织,选这个

创建组织.png

填资料,分别是组织ID(必填) 组织名称(必填) 地区 网站地址 推特

创建好了,长这样。你可以看到,同样有Add New Repository,可以创建代码库

组织主页
  • 从Github导入组织

如果想从Github导入组织,你必须先在你的Github创建组织,这里也大致放一下流程图

Github创建组织

按照上图进入创建,然后按照后面的流程指导走就行了,很简单。创建完成之后,需要开放该组织的授权


开放授权
开放授权

搞定之后,回到bintray的组织创建页面,点击下图的按钮


Github导入组织

然后选择已有并已授权的组织,后面的步骤相信大家都能轻易完成,不赘述


选择导入的组织
创建代码库

这里首先需要再次提醒,如果你的代码库不是只有你一个人玩,请在创建/导入好的组织里面创建代码库,这样你才能邀请小伙伴来一起玩耍

同样的,先展示入口


创建代码库

填写代码库的具体信息,详情如图

创建代码库

点击Create,就完成创建了

至此,发布代码库在bintray部分的准备工作就完成了,攻略完成 1/3
备注:bintray打开会比较慢,如果能科学上网,应该会好很多


工程配置

工程Gradle文件配置
buildscript {
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.0-alpha02'
        classpath 'com.novoda:bintray-release:0.9.1'
    }
}

最新的bintray-release插件版本请看这里

代码库所在module的Gradle文件配置
apply plugin: 'com.novoda.bintray-release'

//推送到Bintray配置
publish {
    repoName = 'CodeRep' 
    userOrg = "orgnamelll" 
    groupId = "com.bingor" 
    artifactId = 'hahalib2' 
    publishVersion = "1.0.0" //版本号
    desc = "a simple utils tool" //描述,选填
    website = "https://github.com/x78wteam/X78WRouter/tree/master/TestApp" 
}

这里有些地方是需要注意的

  • 1.repoName就是你创建仓库的时候填的那个仓库名
  • 2.userOrg:如果你在组织里面去创建仓库,那么这里需要填写组织ID(ID如下图);如果不在组织内,填你的bintray用户名(用户名如下图)
仓库名
组织ID
  • 3.最终的访问路径,是groupId : artifactId : publishVersion,所以你应该懂它们的各自含义了
  • 4.关于artifactId,有帖子说必须和module名称一致,我特意测试了一下,不一样也是可以的
  • 5.website这里,需要填写你这个库对应工程的页面地址。比如像我这里,我的Git项目下,有多个工程(这个TestApp是其中一个),那我填写的,就是TestApp工程的页面地址,而非整个Git项目的主页地址。我试过填写整个Git项目的主页地址,这样的话,后面“Add to JCenter”就会都发邮件告诉你请填写有效的VCS地址(please provide a valid balabala...具体不记得了)
上传代码到bintray

在你的AS下方标签中,找到Terminal,输入下方指令,用户名和API密钥分别如下图

gradlew clean build bintrayUpload -PbintrayUser=你的用户名 -PbintrayKey=你的Api密匙 -PdryRun=false
用户名
APIKey

至此,发布代码库在本地工程部分的准备工作就完成了,攻略完成 2/3


代码库发布

发布

找到你刚才上传的代码库(有组织去组织里面找,没组织在个人主页找),点进去看详情,有“Add to JCenter”按钮,点击进入,然后什么也不用填,直接点击“Create”还是“Commit”(忘了截图了。。。),就可以了。

首次发布,需要等待几个小时,然后会发一封邮件告诉你,发布成功/失败,失败的话,会告诉你原因

Add2JCenter
发布成功

附上之前VCS地址填错时候,收到的邮件内容

发布失败

审核通过后,就可以引用这个库了,在代码库详情页可以看见引用地址,

引用地址
implementation 'com.bingor:hahalib2:1.0.2'
更新

代码库总会需要上新版本,怎么更新呢?很简单,之前的配置里面,改动版本号,重新上传即可

publish {
    ...
    publishVersion = "1.0.2" //改动这里即可
    ...
}

然后在Terminal再执行一次

gradlew clean build bintrayUpload -PbintrayUser=你的用户名 -PbintrayKey=你的Api密匙 -PdryRun=false

至此,发布代码库到JCenter完成,祝你也能顺利成功~


遇到的坑

GBK编码错误

如果在上传的时候,遇到这个错误

GBK错误

打开工程的build.gradle,输入这个

allprojects {
    ...
    tasks.withType(JavaCompile) {    //设置全局编码
        options.encoding = "UTF-8"
    }
    tasks.withType(Javadoc) {  //设置文档编码
        options {
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
}

本篇内容到此结束,感谢收看~~

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

推荐阅读更多精彩内容