新版Bintray,如何使用Gradle发布项目到Jcenter仓库

前言

写了一个开源的控件,效果如下:

新版Bintray,如何使用Gradle发布项目到Jcenter仓库_第1张图片
一个可以当做radio的seekbar

然后想着干脆发布到jcenter上供大家使用,也顺便熟悉下发布流程,然后便踏上了踩坑之旅。原因呢,便是官网 Bintray 最近貌似改版了,看了以前的博客怎么上传也不成功,期间遇到了坑1,坑2,坑3,感觉心好累,咱们好好回顾下。
看这篇文章,最好先看下这篇 使用Gradle发布项目到JCenter仓库

Bintray的坑

  1. 401 need authoried info
    简言之,就是你的local.properties中的bintray.user或者bintray.apikey没有写对,所以重新比对下改一改吧
  2. gradle 同步时 缺少DSL描述域
    这个应该是插件版本的问题,建议改下最顶层目录中build.gradle 中的依赖,如下图所示为两种不同的:
新版Bintray,如何使用Gradle发布项目到Jcenter仓库_第2张图片
sync 无误的

新版Bintray,如何使用Gradle发布项目到Jcenter仓库_第3张图片
缺少DSL域

3.can not find repo 'xxx'
这个大致跟大家介绍下,其实是因为Bintray 引入了 Organizations 的概念,现在打开我们注册后的首要一般是这样显示的:

新版Bintray,如何使用Gradle发布项目到Jcenter仓库_第4张图片
新版本首页

shang1101是 user
shang是 organization (company),在gradle 中配置指定 useOrg="shang"
在gradle 脚本中必须指定,形式如下:

pkg {
  userOrg = "shang" //这个是你创建时的organization,必须要有,不然没办法找到指定路径
  repo = "maven" //这个仓库必须在 ‘shang’这个organization下,必须在网页上创建成功,否则还是无法找到 repo
  name = "NodeSeekBar" //发布到JCenter上的项目名字
  websiteUrl = siteUrl
  vcsUrl = gitUrl
  licenses = ["Apache-2.0"]
  publish = true
}

注意,注意,注释里面的东西一般都是最重要的哦。

理一下流程

然后呢,下面以图集的形式把整个流程给大家顺一下:

  1. 点击自己的organization.,比如我的是 shang,加载如下链接地址:


    新版Bintray,如何使用Gradle发布项目到Jcenter仓库_第5张图片
    我的organization
  2. 接着就是创建一个 repo:
新版Bintray,如何使用Gradle发布项目到Jcenter仓库_第6张图片
创建repo

3.执行gradlew bintrayUpload,查看结果:

新版Bintray,如何使用Gradle发布项目到Jcenter仓库_第7张图片
命令执行前
新版Bintray,如何使用Gradle发布项目到Jcenter仓库_第8张图片
命令执行后

当当当,是不是多出一个项目,然后发布到jcenter

新版Bintray,如何使用Gradle发布项目到Jcenter仓库_第9张图片
发布到jcenter

总结

按照以前的教程,是不需要在Bintray 做这么多操作的,直接一个gradle脚本就搞定一切了。为什么现在这么麻烦呢?原因就是引入了Organizations,组织嘛,就涉及到多人协作的问题了,这样就必须加入更多的权限管理了。肯定只有管理员才能创建repo的,所以你可以看下你的organization的详情,你肯定拥有管理员权限的吧

最后安利

Gradle :

compile 'com.shang.designview:nodeseekbar:1.0.0'

Maven :


  com.shang.designview
  nodeseekbar
  1.0.0
  pom

使用链接:自定义控件NodeSeekBar使用指南

参考链接

  • 自定义控件NodeSeekBar
  • Android拓展系列(12)--使用Gradle发布aar项目到JCenter仓库
  • 使用Gradle发布项目到JCenter仓库

你可能感兴趣的:(新版Bintray,如何使用Gradle发布项目到Jcenter仓库)