#使用bintray-release 上传Jcenter 所踩过的坑#

写在开始

最近因为项目的需求,需要用到一些特殊的控件。在浏览查找了github之后,感觉比较纠结,一些小的dome,可定制度低,实现的效果和我不太一样。一些大公司的项目又感觉比较臃肿,配置起来比较复杂。所以考虑自己自定义一些控件,写完了之后,想把项目开源给大家交流一下,所以使用bintray-release上传bintray,但是没想到中间遇到很多坑,所以记录分享一下。

接下来分几个点,一些遇到的问题会穿插在里面

  1. 注册账号
  2. 创建仓库
  3. 配置bintray-release
  4. 上传

1. 注册

其实注册这个步骤是最最最坑爹的,在网上绝大部分的教程都一带而过,而我就是因为这个问题反复纠结了1天。

首先 : 打开 bintray官网
首先看到这个

#使用bintray-release 上传Jcenter 所踩过的坑#_第1张图片
微信截图_20170524124737.png

看见这么可爱的绿绿的按钮是不是很想点击注册??
不不不不不!!!!!!!
bintary账号分为普通账号和开源账号,果然点击左边的绿色按钮,你注册的是普通账号,你就必须要加入或者创建组织才可以建立自己的仓库,关键是如果你点错了,你还删不了,非常麻烦。

所以,千万要点击右边的For an Open Source Account Sign Up Here.

接下来,到了

#使用bintray-release 上传Jcenter 所踩过的坑#_第2张图片
微信截图_20170524124824.png

到了这里,什么选择就你喜欢了。

但是要注意一点,不管你选择新注册还是用第三方登录,如果你的邮箱是QQ或者163,都是不行的,到时候邮箱一栏会变红高亮,但是不会有任何提示,很坑爹,所以用gmail或者outlook来注册比较保险。

登录进去之后,点击头像,点击edit profile 如果打开的界面,左边一栏中有repositories 则说明,你的账号没错,如果没有,只有五个选项,则你在注册的时候点错了,注册的是普通的账号。

2. 创建仓库

现在就可以点击repositories 来创建仓库,类型选择maven,其他自己决定,创建好了之后,在里面可以创建一个packge。
这一步一般没有什么问题

3. 配置bintray-release

不说废话 直接上bintray-release github地址

dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'
        classpath 'com.novoda:bintray-release:0.5.0'
    }

这里注意一点,bintray-release不支持 gradle 3.4以下的版本,必须gradle 3.4以上

然后在你要上传的module里面的gradle里面添加

apply plugin: 'com.novoda.bintray-release'

然后在最外层 配置

publish {
    userOrg = 'bintray.com用户名'
    groupId = 'com.xxxxx'//jcenter上的路径,你喜欢
    artifactId = '仓库里面的名称Package'
    publishVersion = '1.0.1'//版本号
    desc = 'simple,bottomdialog'//描述,随便
    website = 'https://github.com/ZENGYANYAN/YanLibrary'//网站,随便;
}

上面是大多数教程的写法,但是有可能会报

HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]

的错误

因为他默认的仓库名字为maven
有相关文章是通过手动建立一个叫maven的仓库来解决
类似这位大神

但是对于我有强迫症的来说,不可接受啊
尝试过后
publish应该是这样的

publish {
    userOrg = 'bintray.com用户名'
    groupId = 'com.xxxxx'//jcenter上的路径,你喜欢
    artifactId = '仓库里面的名称Package'
    repoName='仓库名'
    publishVersion = '1.0.1'//版本号
    desc = 'simple,bottomdialog'//描述,随便
    website = 'https://github.com/ZENGYANYAN/YanLibrary'//网站,随便;
}

这样就很完美了

4.上传

开始上传
首先要得到key

#使用bintray-release 上传Jcenter 所踩过的坑#_第3张图片
微信截图_20170524151409.png

edit profile里面有一个Api Key
copy下来就好

打开Terminal 输入

/gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false

就开始编译,可能会有几个问题

  • gradle 版本问题 上文已解决

  • HTTP/1.1 404 Not Found [message:Repo 'maven' was not found] 已解决

  • GBK编码问题,javadoc编码问题

在项目gradle里面加入

tasks.withType(Javadoc) {
    options {
        encoding "UTF-8"
        charSet 'UTF-8'
        links "http://docs.oracle.com/javase/7/docs/api"
    }
}

或者用参考以为群上大神的项目做法另一位大神

解决这些问题后,就会成功上传了。
在你的仓库里就会找到你上传的package,

#使用bintray-release 上传Jcenter 所踩过的坑#_第4张图片
微信截图_20170524151444.png

点击右下角的add to Jcenter 等待审核
审核结束,就发布成功了。

最后

这就是全部
感谢hongyang大神的博客
还有刚刚我引用过的各位大佬的资料
有什么说得不对的地方,
还请各位大佬多多指教

你可能感兴趣的:(#使用bintray-release 上传Jcenter 所踩过的坑#)