美文网首页AndroidStudio的使用android技术专栏Android开发
新版Bintray,如何使用Gradle发布项目到Jcenter

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

作者: 王岩_shang | 来源:发表于2016-10-20 00:48 被阅读1447次

前言

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

一个可以当做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 中的依赖,如下图所示为两种不同的:
sync 无误的
缺少DSL域

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

新版本首页

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,加载如下链接地址:


    我的organization
  2. 接着就是创建一个 repo:
创建repo

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

命令执行前 命令执行后

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

发布到jcenter

总结

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

最后安利

Gradle :

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

Maven :

<dependency>
  <groupId>com.shang.designview</groupId>
  <artifactId>nodeseekbar</artifactId>
  <version>1.0.0</version>
  <type>pom</type>
</dependency>

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

参考链接

相关文章

网友评论

  • TimFei:请问下,如果想设置一个 private repo ,并且上传如何操作?
    我以企业的名义申请了一个账号(试用30天),创建了一个 private repo,名字是 private,又创建一个 package 名字 Demo,另外 userOrg = abc , apiKey = xxxxx, 但是通过设置,上传时,一直提示 「This resource requires authentication」
    publish{
    repoName = 'private'
    userOrg = 'abc'
    groupId = 'com.demo'
    artifactId = 'Demo'
    publishVersion = '0.1'
    desc = 'xxxx'
    website = 'xxxx'
    }
  • 吉凶以情迁:add to jcenter 了,但是看不到了。
  • 0244668990e7:同楼上,找不到add to jCenter按钮
  • 随着地球转的人:你的组织没有过期吗
  • 小成的小城:我和七楼一样,并没有找到“Add to JCenter”这个按钮
    stone305585:建议申请个人账号,个人的可以
  • imyyq_star:楼主,我想请教一个问题,我按照你的教程,成功把库传上bintray上了,但是我在bintray上并没有看到“Add to JCenter”这个按钮,不知道为啥
    HunkDeng:要Add to jcenter得选择 Sign Up to an Open Source account 注册账号, 不要用Sign Up to a Free Trial。
    stone305585:@listen2code 个人的可以
    listen2code:感觉是要收费了,$150/月,玩不起了
  • imyyq_star:非常非常感谢,我找到的都是旧版的教程,难怪一直不行。
    另外提一下,楼主的这种控件效果,原生控件SeekBar就可以实现,只要加入:
    style="@style/Widget.AppCompat.SeekBar.Discrete"
    即可
  • 恋猫月亮:请问下bintray现在是收费了吗????
  • 依然范特稀西:赞终于解决了401,原来是没有添加 userOrg
  • 103f81611627:赞!!!!!!!搞了一天,最后才发现bintray改版了,貌似还收钱= =我不服
  • xiasuhuei321:大!赞!啊,我前天弄了一晚上没弄好,一直404,只好用jitpack了,超简单
    恋猫月亮:@xiasuhuei321 请问下试用期过后还可以使用吗?

本文标题:新版Bintray,如何使用Gradle发布项目到Jcenter

本文链接:https://www.haomeiwen.com/subject/zdaxuttx.html