使用bintray-release插件把library分享到jCenter仓库

利用bintray-release 这个插件,可以简化上传操作。

第一步:注册帐号 

注册帐号地址: (被坑到这一步,一定注意。注册账号需要翻墙)

https://bintray.com/signup/oss 不要自己在百度搜bintrary官网注册,这里面注册的账号是个人开发的账号不需要审核,那么成功上传后会有一个add to jcenter按钮。如果百度官网自行注册,会标示为企业开发者,需要1个月审核,就算上传成功也不会出现add to jcenter按钮,最终还是无法使用。

两者的区别是企业用户会有一个组的概念,而个人是没有的。userOrg和PbintrayUser是一样的。


第二步:创建仓库 

在bintray中的public仓库下,创建名字为maven的仓库,并且选择类型为MAVEN


第三步:获取bintray帐号Key

在右上角头像下拉选项中点击Edit Profile 里面可以显示appkey 后续上传代码到bintray需要使用。


第四步:1.在需要上传工程的根build.gradle 中添加

buildscript {

    repositories {

        jcenter()

        mavenCentral()

    }

    dependencies {

        classpath 'com.android.tools.build:gradle:2.3.1'

        classpath 'com.novoda:bintray-release:0.9.1'//添加  使用最新版本 解决可能的报错

    }

}

allprojects {

    repositories {

        jcenter()

        maven{

            url "https://jitpack.io"

        }

        mavenCentral()

    }

    tasks.withType(Javadoc) {

        options.addStringOption('Xdoclint:none', '-quiet')

        options.addStringOption('encoding', 'UTF-8')

    }

}

task clean(type: Delete) {

    delete rootProject.buildDir

}

//统一声明配置

ext {

    userOrg = 'xxx' //网站注册时候的用户名

    groupId = 'xx.xxx.xxxx'  //一般为上传工程的包名

    uploadName = 'xxxx' // 上传的名字,可为工程名

    publishVersion = '1.0.0'//上传的版本号

    desc = 'Request code can be generated automatically'  //详细说明,可自己编辑

    website = "https://github.com/liulilei/${rootProject.name}" //github地址

    licences = ['Apache-2.0']

}

2.剩下的只需要你在你要上传的各个module中,引入

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

//添加,下面配置可以上面根目录的配置一样。

publish {

    artifactId = 'apiFactory-annotation'

    userOrg = 'liul1'

    groupId = 'test.library.libraryuploadbintraryt'

    uploadName = 'libraryuploadbintraryt'

    publishVersion = '1.0.0'

    desc = 'Request code can be generated automatically'

    website = "https://github.com/liulilei/${rootProject.name}"

    licences = ['Apache-2.0']

}

第五步: 执行:()

mac 执行:./gradlew clean build bintrayUpload -PbintrayUser=xxx -PbintrayKey=appkey -PdryRun=false

windows执行:gradlew clean build bintrayUpload -PbintrayUser=xxx -PbintrayKey=appkey -PdryRun=false

PbintrayUser这个是用户名也就是userOrg。

PbintrayKey这个是appkey。

第六步:

登录bintary 找到maven这个时候如果是上传成功的  里面会找到刚才上传到的工程,点进去点击add to jcenter 然后send,会进入审核阶段。

审核成功后有邮件提示,这个时候就可以找到gradle下面的引用地址,在需要使用的地方直接使用上传到的工程了。

第七步:

如果需要更新升级的时候,更新完代码只需要把更目录下的publishVersion,和module里面的publishVersion更新到自己的版本如1.0.0 ---->1.0.1

然后在次执行:(mac命令,windows同上面)

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

那么在引入的时候改变版本号即可使用最新代码。

注意:第一次上传的时候需要add to jcenter, 后面更新只需要在命令行提交到bintary即可。

--------------------------------------------------------------------------------------------------------------------

至此我们就成功的完成了一个library从创建到提交到审核到引用的所有阶段。

按照上面步骤一步一步操作基本不会碰到问题,但是网上也罗列出了一些有坑的地方,如果有遇到可以协助解决。

排坑一) 

注册帐号网址:https://bintray.com/signup/oss【只有在这里注册才有add jcenter按钮!!!】

排坑二) 

忽略lint检查,在提交编译的时候回去检查lint,如果没有配置忽略lint检查,它会报错,需要将所有都添加 忽略lint检查代码,包括app,包括任何一个module

代码:

lintOptions{

        abortOnError false

    }

将这段代码添加到gradle文件

排坑三) 

如果class里面有中文字体,他会报 编码GBK的不可映射字符

      task javadoc(type: Javadoc) {

          options.encoding "UTF-8"

          options.charSet 'UTF-8'

      }

请配置到gradle文件中

排坑六) 

错误:Could not create version ‘0.1’: HTTP/1.1 401 Unauthorized [message:This resource requires authentication] 

解决办法:没有配置正确的API Key


参考博客地址:https://blog.csdn.net/yang123465/article/details/54972351

                         https://www.jianshu.com/p/656e004fd7c4

你可能感兴趣的:(使用bintray-release插件把library分享到jCenter仓库)