使用Gradle发布Android类库到JCenter笔记

如果你想在Android Studio中引入一个library到你的项目,只需添加一行compile代码到模块的build.gradle文件中,远程依赖可以节省工程文件大小,避免了大量本地jar包类库占据代码空间,而且类库版本更新也很方便。
如果我们有一个开源类库需要提供给别人来用,就可以采用下面的方式来发布。

注册账号

首先要在bintray注册个账号,并在设置里获取API Key

修改Gradle脚本

  • 修改根目录下build.gradle

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    buildscript {
    repositories {
    jcenter()
    }
    dependencies {
    classpath 'com.android.tools.build:gradle:2.3.1'
    classpath 'com.novoda:bintray-release:0.3.4' //添加
    }
    }

    allprojects {
    repositories {
    jcenter()
    }
    }

    task clean(type: Delete) {
    delete rootProject.buildDir
    }
  • 修改要上传的类库模块的build.gradle

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    apply plugin: 'com.android.library'
    apply plugin: 'com.novoda.bintray-release'//添加

    android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"

    defaultConfig {
    ...
    }
    buildTypes {
    ...
    }
    lintOptions {
    abortOnError false
    }
    }

    dependencies {
    ...
    }

    //添加
    publish {
    userOrg = 'huzongyao'//bintray.com用户名
    groupId = 'com.hzy'//jcenter上的路径
    artifactId = 'nsgif'//项目名称
    publishVersion = '1.0.0'//版本号
    desc = 'an android gif decoder based on libnsgif'//描述
    website = 'http://huzongyao.github.io/'//网站
    }
  • 执行编译上传脚本

    1
    ./gradlew clean build bintrayUpload -PbintrayUser=huzongyao -PbintrayKey=XXXXXXXXXXXXXXXXXXXXXXXXXX -PdryRun=true

    dryRun参数说明只编译不上传,确定要上传的时候设置为false

  • 添加到JCenter
    上传成功以后到bintray网站就可以看到这个类库的信息了,用以下方式就可以在android studio中引用该类库,但是还是报错。
    这是只需要在网页右边点Add to jcenter,审核通过以后就可以正常使用了。

    1
    compile 'com.hzy:nsgif:1.0.0'

    这样之后就大功告成了,之后版本更新,也采用同样的方式即可。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器