发布Android Library到Bintray、JCenter流程概述

对于一些想要供多个项目使用的安卓library来说,可以将其发布到JCenter上,然后使用maven的库构建项目,会大大简化开发过程。下面说一下发布到JCenter的流程。

1.登录https://bintray.com/signup/oss 网站注册一个账号(注意,需要注册的是个人账号而不是一个组织账号,组织账号无法发布到JCenter)

图片

2.创建一个maven仓库

点击add New Repository创建一个仓库(如果已经有一个maven仓库了就不需要创建),进入创建页面 ,命名一般叫maven,type选择Maven类型 如图


图片

3.在maven仓库下创建package

首先 你要发布一个库,必须要配置groupId、artifactId。在bintray,必须创建package,才能发布库,一个package对应一个库,这里的package并不是包名,而是与artifactId对应。
例如,gradle引用gson:
compile 'com.google.code.gson: gson : 2.8.0'
group指定的com.google.code.gson就是groupId,name指定的gson,就是artifactId。如果gson是你的项目,并且发布到bintray,就需要创建gson package.

进入maven仓库 点击add new package 进入package添加界面


图片

点击add new package 进入package添加界面

图片

我们需要发布的库,artifactId=demo_package:
Name填写"demo_package";
Licenses选择开源许可,可选Apache-2.0
Version Control建议填github项目地址(实际上填什么都可以)
点击“Create Package”,如无意外,package创建成功


图片

4.进入配置Android Library环节

然后在project中的build.gradle中添加如下代码

buildscript {
    dependencies {
        classpath 'com.novoda:bintray-release:0.8.0'
    }
}

allprojects {
    repositories {
        maven { url 'https://dl.bintray.com/kkmike999/maven' }
    }
}

把kkmike999替换成自己的用户名即可
然后在要上传的module的build.gradle文件中加入如下代码

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

publish {
    userOrg = 'corrine'   //bintray注册的用户名
    groupId = 'com.corrine.test'         //compile引用时的第1部分groupId
    artifactId = 'demo'     //compile引用时的第2部分项目名
    publishVersion = '1.0.0'    //compile引用时的第3部分版本号
}

groupId上传上去后就是compile引用时的第1部分groupId,artifactId必须和远程创建的package名字一致,publishVersion就是要发布的版本号

5.执行上传命令

在Android Studio的Terminal面板进行,执行下面的代码即可:

gradlew clean build bintrayUpload 
 -PbintrayUser=jcenter //jcenter 用户名
 -PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx // 注册账号获取到的apikey
 -PdryRun=false

api key可以在自己的profile页中找到,如图,输入密码就会显示出自己的api key


图片

user就是用户名,key就是我们自己的的Api key,dryRun是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传。
然后就是等待,当运行并上传完成,看到BUILD SUCCESSFUL就没问题了,如果有问题,根据log排查下。

6.发布到jcenter

点击进入package的首页 ,在general中可以看到有add to jcenter选项,点击该选项,进入申请页面


image.png
图片

输入申请信息提交就可以了 一般得等待几小时
申请成功会变成如图所示的样子,就可以从jcenter下载了。


图片

推荐阅读更多精彩内容