美文网首页
Android向JCenter发布开源库方法

Android向JCenter发布开源库方法

作者: Ricky_Chan | 来源:发表于2017-05-08 17:21 被阅读0次

    前言

    Android开发在很多时候都想很方便的使用别人和自己的开源库,不希望将已经封装好的模块在多个项目中进行无休止的复制、粘贴;最好的方式就是将自己封装好的库发布到JCenter中,然后在新项目的APP Module中进行compile依赖,实现上传到JCenter中的方法有很多,本文介绍一种非常简单的方式进行上传--bintray-release

    方法

    1.建立封装库

    上传到JCenter中一定要有一个库,所有需要在Android studio中新建一个类型为library的封装库


    新建封装库

    2.注册bintray.com账号

    JCenter其实就是一个maven仓库,注册bintray.com账号其实就是拥有上传权限的第一步(因为JCenter库是由bintray维护的)

    bintray注册界面
    • 注意:注册成功后登录,然后按图所示操作,保存好生成的key,后面会用到。
    保存key

    3.在项目中引入bintray-release

    3.1.在项目的build.gradle中添加依赖
    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.1'
            classpath 'com.novoda:bintray-release:0.4.0' //添加
        }
    }
    
    • 注意:这个是在项目中的build.gradle, 不是APP Module中的build.gradle
    3.2.配置需要上传的 Library Module
    apply plugin: 'com.android.library'
    apply plugin: 'com.novoda.bintray-release' //添加
    
    android{  //不变
    }
    
    dependencies{ //不变
    }
    // 添加
    publish {
        userOrg = 'rickychan'//bintray.com用户名
        repoName = 'android'//Repository名(bintray网站新建的Repository名,类型为maven)
        groupId = 'com.ricky'//jcenter上的路径
        artifactId = 'avanti'//项目名称
        publishVersion = '1.1.0'//版本号
        desc = 'Custom Android fast develop framework'//描述,不重要
        website = 'https://github.com/AndRickyChan/Avanti'//网站,不重要;可以填写项目的github地址
    }
    
    注意:
    • repoName值必须和bintray中新建的Repositoty名相同,不然上传过后容易出现404错误提示,如果你新建的Repositoty名为"maven",则这个值可以不传,bintray默认这个值为"maven"
    • 新建的Repositoty的类型应为maven,协议应为Apache2.0

    4.开始上传

    执行下面代码进行上传

     ./gradlew clean build bintrayUpload 
     -PbintrayUser=rickychan
     -PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx 
     -PdryRun=false
    
    注意:
    • 执行上面代码是在命令行下,目录必须在当前项目的根目录下,可以在Adnroid Studio的Terminal中执行(windows用户不需要输入前面的./)
    • PbintrayUser为bintray注册设置的用户名;PbintrayKey为bintray生成的key

    5.提交审核

    提示上传成功后,就可以在 https://bintray.com/你的用户名/你的Repository名 中看到你上传的library

    上传后项目截图

    点击项目进入详情即可提交审核


    提交审核
    注意:
    • 在我写文章时候我的项目已经审核通过了,所以提交的按钮消失了,具体位置已在图中标出。
    • 经过几个小时过后,JCenter审核通过,就可以使用上图标出的依赖了。

    细节介绍

    1.在执行上传代码的时候,有可能出现错误,请按照命令行提示的错误进行修改,然后重新执行上传操作。
    2.如果上传的library Module的build.gradle中存在中文代码或者注释,则需要在项目的build.gradle文件中进行配置
    allprojects {
        repositories {
            jcenter()
        }
    
        //添加
        tasks.withType(Javadoc) {
            options {
                encoding "UTF-8"
                charSet 'UTF-8'
                links "http://docs.oracle.com/javase/7/docs/api"
            }
        }
    }
    
    3.如果library更新,则需要重新上传,上传代码不变,只需要改变需要上传的Module中的build.gradle中的配置,更改publishVersion参数即可,更新库不需要等待bintray审核,会在自己新建的Repository中生成一个新版本的分支,点击可查看详情
    仓库更新

    其他

    在学习将自己的库上传到JCenter的时候参考的是hongyang大神的博客,然后根据提交过程中产生的错误进行的实践,对细节进行了相应的补充。

    相关文章

      网友评论

          本文标题:Android向JCenter发布开源库方法

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