上传Library到JCenter
title: 上传Library到JCenter
date: 2016-10-14 11:27:30
tags: AndroidLib
thumbnail: http://p8.qhimg.com/t01caee66c008942284.png
确定要上传的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的文件中配置自己的信息,复制下面的脚本,改成你自己的信息即可
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'
。
上传
经过上面的配置,现在就可以传了,上传之前记得Sync一下Project,然后打开命令行,输入,回车:
gradlew clean build bintrayUpload -PdryRun=false
然后等待几分钟,期间会联网下载依赖的库,最后如果没有问题,会显示BUILD SUCCESSFUL信息,然后去官网查看刚才建的Package,会发现多了你刚才上传的版本号。
BUILD SUCCESSFUL 上传成功的Package 点进去可以看到有三种引用方式: img但是到这里还无法让别人也能引用,目前只是你自己的私人库。下面是添加到Jcenter,非常简单。
添加到Jcenter
在上面的页面中点击Add To JCenter,然后随便填写一下comments,点击send,然后工作人员会审核和,你只需等待几个小时,然后会有站内消息提示你已经发布发到Jcenter,这样别人也可以引用你的Library,有没有很自豪的感觉! img img更新版本号
这个非常简单,当你的Libraryd代码更改后,只需要更改一下上面的配置里面的publishVersion
,运行gradlew clean build bintrayUpload -PdryRun=false
,就可以更新版本号了。这样,整个过程就结束了,遇到什么问题欢迎评论提出或者私信我。
总结
其实上传没那么复杂
-
注册账号
-
为自己的Library项目添加依赖,配置信息
-
上传,添加到Jcenter
-
更新版本号
常见问题
-
如果你的Java doc含有中文导致上传失败,可以尝试在lib的build.gradle添加如下代码:
allprojects { tasks.withType(Javadoc) { options{ encoding "UTF-8" charSet 'UTF-8' links "http://docs.oracle.com/javase/7/docs/api" } } }
-
本教程是基于插件novoda/bintray-release的,更多问题可以查看issues或者查看Wiki。