美文网首页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