上传Library到JCenter

确定要上传的Library

如果你有Library可以忽略此步骤,没有的话添加library。在Android Studio中选择File->New->New Module,然后选择一个Library,新建一个Library。这里以新建DemoLibrary为例子。(注意这里的Library需要后面的Package的名字一致)。新建一个Library

新建一个Library

现在项目的结构如下图,接下来就是添加必要的Jcenter的依赖,为上传做准备。项目的结构


注册账号

首先去bintray官网注册账号,注册完成后验证邮箱,然后登陆进入首页点击View All,选择Maven仓库,新建一个Package,填写Package名字(注意Package需要和你的Library的名字一致)

img

注意点击你的头像->Your Profile->Edit->Api key,这个先记下来,后面上传要用到。Api key

新建一个Package新建一个Package新建一个Package


添加依赖

在整个工程的build.gradle文件中添加classpath 'com.novoda:bintray-release:0.3.4',注意是整个工程的build.gradle

添加依赖

接着是在你自己Library(这里是DemoLibrary)的build.gradle的文件中配置自己的信息,复制下面的脚本,改成你自己的信息即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'
publish {
userOrg = 'lufficc' //你的用户名
groupId = 'com.lufficc' //你的唯一的groupId,对应com.squareup.okhttp3:okhttp:3.4.1中的com.squareup.okhttp3
artifactId = 'DemoLibrary' //你的library的名字,对应com.squareup.okhttp3:okhttp:3.4.1中的okhttp
publishVersion = '0.0.1' //版本号
desc = 'This is a demo library to teach how to publish you own library to jcenter with android studio.'
website = 'http://lufficc.com/' //建议填写github地址,不过不影响,这里做演示填的自己的网址
bintrayUser = 'lufficc' //你的用户名
bintrayKey = 'Your api key' //在你的账户里面查找
}

经过上面的配置,上传成功后那么别人引用你的library的代码就为compile 'com.lufficc:DemoLibrary:0.0.1'

你自己Library的build.gradle的文件中配置自己的信息


上传

经过上面的配置,现在就可以传了,上传之前记得Sync一下Project,然后打开命令行,输入,回车:

1
gradlew clean build bintrayUpload -PdryRun=false

然后等待几分钟,期间会联网下载依赖的库,最后如果没有问题,会显示BUILD SUCCESSFUL信息,然后去官网查看刚才建的Package,会发现多了你刚才上传的版本号。

BUILD SUCCESSFUL上传成功的Package

点进去可以看到有三种引用方式:img

但是到这里还无法让别人也能引用,目前只是你自己的私人库。下面是添加到Jcenter,非常简单。


添加到Jcenter

在上面的页面中点击Add To JCenter,然后随便填写一下comments,点击send,然后工作人员会审核和,你只需等待几个小时,然后会有站内消息提示你已经发布发到Jcenter,这样别人也可以引用你的Library,有没有很自豪的感觉!imgimg


更新版本号

这个非常简单,当你的Libraryd代码更改后,只需要更改一下上面的配置里面的publishVersion,运行gradlew clean build bintrayUpload -PdryRun=false,就可以更新版本号了。这样,整个过程就结束了,遇到什么问题欢迎评论提出或者私信我。


总结

其实上传没那么复杂

  1. 注册账号

  2. 为自己的Library项目添加依赖,配置信息

  3. 上传,添加到Jcenter

  4. 更新版本号


常见问题

  1. 如果你的Java doc含有中文导致上传失败,可以尝试在lib的build.gradle添加如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    allprojects {
    tasks.withType(Javadoc) {
    options{
    encoding "UTF-8"
    charSet 'UTF-8'
    links "http://docs.oracle.com/javase/7/docs/api"
    }
    }
    }
  2. 本教程是基于插件novoda/bintray-release的,更多问题可以查看issues或者查看Wiki

原文地址

评论