相信大家在使用Android Studio开发项目时,都感受到了使用Gradle来管理项目,以及添加第三方依赖的方便性。同时作为一个Android程序猿,肯定也希望有一款自己的开源库受到大家的认可,不管是出于自己的虚荣,还是为了开源的精神,我们都应该掌握掌握这个装逼神技😄。正好前段时间写了一个自定义View的开源库BezierIndicator,虽然项目简单,正好可以拿来尝试一下发布开源库的操作。
准备
首先我们要知道,Android开源库有两个常用的开源网站JitPack以及JCenter,这两个网站都可以发布我们的开源库,发布成功后都可以在项目gradle中通过一行代码引入开源库,那它们有什么区别呢?
在引入JitPack开源库的时候,我们需要在项目根目录的build.gradle中添加这行代码
1 | allprojects { |
而引入JCenter的开源库时只需要到项目build.gradle中添加依赖代码就行了。
需要准备以下内容
- 新建一个项目,并在项目中添加一个Library Moudle作为你要发布的开源库
- 一个github账号
- 一个bintray账号
项目结构如下

发布到JitPack
1、在项目根目录build.gradle添加Maven插件
1 | classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' |
2、在要上传的library的build.gralde文件添加如下代码:
1 | // JitPack Maven |
3、项目发布到github上,在github项目主页创建一个release或者Tag:
4、将项目的仓库提交到JitPack,Jitpack可使用github账号授权登录:
5、点击Get it就可发布开源库,成功后就可在项目中直接引用
1 | allprojects{ |
1 | compile 'com.github.linchenming0516:BezierIndicator:1.0.0' |
发布到JCenter
Bintray准备
1、注册Bintray,这里注意注册邮箱不能是国内的邮箱,所以自备梯子吧。
2、获取注册完的User账号及APIKey,后面上传有用
3、进入你的Bintray主页,注册一个Maven仓库
新建仓库name最好写成maven
项目gradle配置
1、在项目根目录build.gradle中配置Bintray以及Maven的服务插件
1 | classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' |
可以去插件的github地址获取最新插件的版本号,添加完插件后,需要让 library module 依赖新的插件,在库的build.gradle中添加如下代码
1 | apply plugin: 'com.jfrog.bintray' |
2、Bintray在上传库时需要一个POM文件,可以通过刚引入的Maven插件自动生成,但还是需要我们给出groudId和version的值,只需在库的build.gradle中添加如下代码
1 | //JCenter 添加 |
3、为了与Maven标准对应,你需要在库module的build.gradle中添加几个task,分别生成Jar、Javadoc和JavadocsJar,只需要将下面三个task代码添加到库的build.gradle文件即可。
1 | task generateSourcesJar(type: Jar) { |
为了将你生成的源代码和Javadoc Jar文件添加到Maven中,你需要将task添加到一个archive中,只需要向库module下的build.gradle中添加如下代码:
1 | artifacts { |
4、将前面获取的Bintray的user以及apikey写在local.properties文件中,这个文件最好不要添加到版本控制中
1 | bintray.user=your_username |
5、继续在 Library module的build.gradle中添加上传必须的代码块
1 | //需要在local.properties文件中取值 |
在选择License时,可以参考这张图,来自阮一峰老师的博文。刚才说过,选择License只是选择一种权利,选好之后可以直接添加就好。GitHub在创建Repo时可以快速添加License文件。
开始进行上传
1、选择AndroidStudio Gradle视图,菜单点击View->Tool Windows->Gradle调出,点击图标栏的Gradle图标。
2、输入install,点击OK。这时会执行Maven相关的task,完成后会在build目录下生成必要的文件
3、成功后再次点击Gradle图标,输入bintrayUpload 并点击OK
上传成功后,可以在你的Bintray的maven仓库中看见上传完成的项目
4、点击进入maven仓库中的项目,会有一个提示让你七天内公开,点击Publish
5、为了让所有开放者使用,我们需要将类库添加到JCenter中,点击 Add to JCenter 按钮提交申请
提交后几个小时后就会有邮件通知添加成功,添加成功后就会变成如下景象
1 | <dependency> |
6、接下来就可以在项目中直接引用了
1 | compile 'com.lcm.bezierIndicator:bezierIndicator:1.0.0' |
小结
发布到JitPack的操作比较简单,只不过引用比Jcenter多一句代码而已,怕麻烦的可以直接发布到JitPack上。发布到JCenter操作比较繁琐点,反正多掌握一点技巧总不会有错的😄,同时也发现一种简化上传JCneter的方法-极简上传Library到JCenter,有兴趣的可以尝试尝试。
参考文章:







