Android 使用bintray将本地库上传到JCenter做maven依赖库

Posted 碎格子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 使用bintray将本地库上传到JCenter做maven依赖库相关的知识,希望对你有一定的参考价值。

建项目及制作library包部分

1.在github上新建一个仓库

2.将仓库clone下来

3.新建项目:

项目文件夹选择我们克隆下来的文件夹

4.File->New->New Module选择library

成功后的Project 结构

在新创建的库中编写代码,并在app模块的gradle下添加下面代码引入库:

compile project(':yourmodulename') //冒号后是你的新module的名称

5.Project的gradle文件里添加以下代码

buildscript 
    repositories 
        jcenter()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:2.2.3'
        //添加这一行
        classpath 'com.novoda:bintray-release:0.3.4'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    

然后在library模块的gradle里加入以下代码:

apply plugin: 'com.novoda.bintray-release'//添加这一行

...

publish 
    userOrg = 'username/organization'//username 或者 organization 的名称,个人用户是 username,企业用户是 Organization Name
    groupId = 'YourPkgName'//jcenter上的路径,如com.ezbuy.XXX
    artifactId = 'packageName'//项目名称与bintray上的package名称一致
    publishVersion = 'v1.0.0'//版本号

注意:此处有个坑

如果你用的企业版的bintray,userOrg填的是你的Organization Name,如果你是用的个人版的bintray则是用自己的用户名(被这个大坑坑了半天),如何区分企业还是个人用户我将在后面讲到

bintray页面配置

创建新仓库

创建Package

上传

./gradlew clean build bintrayUpload  -PbintrayUser=berosy  -PbintrayKey=********************  -PdryRun=false

这里的PbintrayUser是你的bintray用户名,PbintrayKey是bintray Api key,从编辑个人信息处获取:

上传成功后发布

这边要等审核,审核过了我们就可以在其他项目里加入我们的依赖库了

问题

1.如何区别自己是个人还是企业用户

企业登录入口这个登录界面登录或者注册的就是企业用户,由个人登录入口这个登录界面登录注册的是个人用户,还有进去bintray主界面后,企业用户不能直接添加仓库,必须在组织(Organization)下添加仓库,个人用户可以直接添加仓库。一开始我直接注册登录到企业用户,结果后面一大堆问题,坑哭~

2.’maven’没找到的问题

上传库至bintray时gradle报错:

Could not create package 'berosy/maven/ezrecyclerview': HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]

原因可能有两种:
- 在bintray设置仓库名字时设置的不是’maven’,而上传library时默认上传至maven,将bintray页面的仓库名字设置为maven就行
- userOrg填错了,如果是企业用户是组织名称,如果是个人用户是你的用户名!

3.package报错

Could not create package 'berosy/maven/ezrecyclerview': HTTP/1.1 400 Bad Request [message:Please enter a valid VCS URL for your OSS package.]

主要是package信息不完整,在bintray设置页面新建了package,填完整信息就好

4.Add to JCenter没找到

一定是用了企业版的试用版!一定是用了企业版的试用版!一定是用了企业版的试用版!
换成个人版!

5.Unauthorized错误

错误信息:

Could not create package '/maven/': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]

一定是username或者key填错了!一定是username或者key填错了!一定是username或者key填错了!
仔细检查一遍!

以上的代码都上传至我的github,可以前往参考:https://github.com/Berosy/EzRecyclerView

以上是关于Android 使用bintray将本地库上传到JCenter做maven依赖库的主要内容,如果未能解决你的问题,请参考以下文章

使用选定的风格将 Android 库 (aar) 发布到 Bintray

如何将本地 aar 依赖项添加到 bintray 发布的库中?

Bintray上传失败,无法找到R级

踩坑速记全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~

Android Gradle plugin 开发并上传到JCenter

Android Gradle plugin 开发并上传到JCenter