本文主要介绍利用novoda插件把Android库上传到bintray远程仓库,无缝对接AS项目默认的jcenter远程仓库。

配置Bintray

介绍如何登录注册bintray账号,配置repo项目。登录bintray后创建repo可以分个人创建和组织创建,相对组织创建repo的过程完全包含个人创建的过程。所以以下介绍全部基于组织创建repo库。(bintray上创建一个repo相对于Android的一个库)。
登录
首页
创建组织
创建repo
创建maven
api-key
上传成功
上传成功

配置Android Studio

配置项目

项目根目录 build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
        classpath 'com.novoda:bintray-release:0.3.4'
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }

    // bintray 上传如果注释中有中文,可能会出现:编码GBK的不可映射字符
    tasks.withType(Javadoc) {
        options {
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
}

配置novoda插件

在项目根目录创建文件 /config/maven-common.gradle

  • 个人创建repo项目,userOrg就是登录的用户名
  • 组织创建repo项目,userOrg就是组织名
// 添加到Bintray仓库
apply plugin: 'com.novoda.bintray-release'

publish {
    userOrg = 'aorise-android-group'    // 用户名/organization
    groupId = 'cn.aorise'               // jcenter上的路径
    artifactId = 'android-common'       // 项目名称
    publishVersion = android.defaultConfig.versionName
    desc = 'Aorise Technology Co., Ltd. android public library'
    website = 'https://github.com/novoda/bintray-release'
}

配置库模块

需要上传bintray的库模块根目录 build.gradle 添加如下配置:

apply from: '../config/maven-common.gradle'

上传命令

进入项目根目录执行命令:

  • PbintrayUser: 不管是个人还是组织创建repo,这个都是登录的用户名
  • PbintrayKey: 见配置Bintray段落的api-key
  • PdryRun: false会上传Bintray true只是编译不会上传Bintray
  • 普通测试中build命令也可以用assembleRelease命令取代
gradle clean build bintrayUpload -PbintrayUser=aorise -PbintrayKey=219c9dafc270156a778386fef141654c0e1a7a4e -PdryRun=false

第三方库使用

配置项目

项目根目录 build.gradle

buildscript {
    repositories {
        jcenter()
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url "https://dl.bintray.com/aorise-android-group/maven/"
        }
    }
}

配置模块

模块根目录 build.gradle

compile 'cn.aorise:android-common:1.0.0'