Android 快速发布开源项目到jcenter
转载请标明出处(请勿转载删除底部微博、微信等信息):
http://blog.csdn.net/lmj623565791/article/details/51148825;
本文出自:【张鸿洋的博客】
大家在很多时候都希望让自己的开源项目可以更方便的让用户去使用,那么对于Android平台,一个很好的方式就是上传到jcenter,然后使用时通过添加compile
引用即可。
对于上传到jcenter,也不算技术类的文章,而且已经有很多较好的文章可以参考,写之前我也大致百度了一下。
目前很多文章都是以gradle-bintray-plugin
这个插件做上传,多数文章的介绍都是针对普通的开源项目的(即不包含编译时注解相关)。那么对于用到编译时注解,因为涉及到多个module
,上传可能会比较麻烦。
本文准备采用bintray-release
这个插件,个人感觉比gradle-bintray-plugin
要方便很多。
对于使用gradle-bintray-plugin
的,我百度了下,可以参考这篇http://www.cnblogs.com/qianxudetianxia/p/4322331.html
So,本文的主要内容是:
- 使用
bintray-release
发布一般项目到jcenter - 使用
bintray-release
发布编译时注解项目到jcenter
一、普通项目上传到jcenter
ok,首先你应该有一个待上传的项目。
那么我们这里模拟一个简单的项目。
可以看到我们的basetools是个Android library,主要用来存放一些工具,我们现在要将其上传到jcenter。
那么,对于你,应该已经有了这样一个Android library,处于待上传的状态。
(1)注册bintray.com账号
为什么要注册这个账号呢,因为jcenter()
属于bintray旗下的一个仓库。
我们的上传流程其实就是,从你的Androd Studio,到你的bintray 仓库,最后同步到jcenter仓库。
- 进入https://bintray.com/,注册账号。
- 注册完成后,需要邮箱激活;也可以选择第三方登录。
注册完成后,登录,这两步属于非职业玩家都能搞定的。
登录后:
登陆后,你可以点击Your Profile
->Edit
然后就能看到上图的界面。
点击API Key,就可以看到你一段key字符串,把这个copy下放一边,一会上传要用。
(2)引入bintray-release
项目的build.gralde
在你的项目的build.gradle添加bintray-release
的classpath,注意是项目的build.gradle,不是module的,针对文章开始的图即UploadJcenterTest/build.gradle
。
buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:1.2.3'classpath 'com.novoda:bintray-release:0.3.4'}
}
待上传moudle的build.gralde
来到你想要上传的module,针对文章开始的图即UploadJcenterTest/basetools/build.gradle
。
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//添加android {//保持不变
}dependencies {//保持不变
}//添加
publish {userOrg = 'hyman'//bintray.com用户名groupId = 'com.hyman'//jcenter上的路径artifactId = 'basetools'//项目名称publishVersion = '1.0.0'//版本号desc = 'Oh hi, this is a nice description for a project, right?'//描述,不重要website = 'https://github.com/hyman/basetools'//网站,不重要;尽量模拟github上的地址,例如我这样的;当然你有地址最好了
}
按照上面编写即可,细节有标识注释了,假设按照上述的编写,最终引入的方式为:
compile 'com.hyman:basetools:1.0.0
完成上面的配置后,就准备上传了。
上传
上传很简单,执行下面的代码即可
./gradlew clean build bintrayUpload -PbintrayUser=hyman
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
user就是用户名,key就是我们刚才的让你保存的key,dryRun是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传。
ok,下面整理好上面的这段代码,运行即可。关于运行,你可以选择在Android Studio的Terminal面板进行,如下图。
点击底部的Terminal即可,注意下你当前的路径是当前项目下,然后enter运行。
然后就是等待,当运行完成,看到BUILD SUCCESSFUL
就没问题了,如果有什么问题呢,根据log排查下。
到此就上传完成了~~~
你可以访问https://bintray.com/你的用户名/maven
,即可看到:
看到我们上传的项目了,你可以点击进去看该库的一些信息,但是注意此时还不能够直接被引用。
点击进去该库,按照下图,点击Add To jcenter
然后随便写一下对你该库的描述,然后点击发送就可以了。
ok,到此就结束了,不过目前还是不能直接引用的,你需要等待bintray的工作人员审核,审核通过会给你发送站内Message,并且Add to Jcenter
那个按钮就小时了,此外你还可以根据你上传的groupId,访问该网站https://jcenter.bintray.com/你的groupId
例如https://jcenter.bintray.com/com/hyman/
如果可以引用,则能看到如下:
最后总结下整个过程,其实非常简单:
- 申请账号
- 引入bintray-release,在需要上传的module里面填写相关publish的信息
- 调用上传的命令
Add to Jcenter
提交审核
基本都是步骤化的东西,真正需要我们填写的也就publish里面几个信息。
ok,接下来看上传编译时注解的项目。
二、编译时注解项目上传到jcenter
如果你暂时不需要这个需求,其实没必要往下看,因为并不属于技术类文章,了解这里有写,可以收藏下,遇到需求再回来看就好了。
其实也很简单,按照步骤做就好。
我们这里找一个项目作为演示。
为什么说编译时注解的项目特殊呢?
因为它一般会涉及到多个moudle,比如上图,涉及到compilter
、permission-annotation
、permission-lib
。
我们在上传时,这3个module都要进行上传,这里暂不涉及为啥会这么分module相关知识。
其实利用bintray-release
上传的过程也很简单。
项目的build.gradle
首先针对项目的build.gradle,即图中MPermissions/build.gradle
buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:1.2.3'classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'classpath 'com.novoda:bintray-release:0.3.4'//添加}
}allprojects {repositories {jcenter()}
}//添加
ext {userOrg = 'hongyangandroid'groupId = 'com.zhy'uploadName = 'MPermission'publishVersion = '1.0.1'desc = 'a easy API to use runtime permission for Android M 'website = 'https://github.com/hongyangAndroid/MPermissions'licences = ['Apache-2.0']
}
只要关注添加的部分,底部的ext主要是为了上传多个module统一管理的。
module的build.gradle
剩下就是compilter
、permission-annotation
、permission-lib
这三个module,这三个模块的处理其实是一致的:
- apply插件
- 填写publish信息
apply plugin: 'com.android.library'
apply plugin: 'bintray-release'//添加android {
}dependencies {}//添加
publish {artifactId = 'mpermission-api'userOrg = rootProject.userOrggroupId = rootProject.groupIduploadName = rootProject.uploadNamepublishVersion = rootProject.publishVersiondesc = rootProject.descriptionwebsite = rootProject.websitelicences = rootProject.licences
}
3个模块的配置是一样的,唯一不同的就是publish中的artifactId
,不同的module应该有它不同的名字。
对所有需要上传的module配置完成后,和上面一样,运行上传的命令即可。
./gradlew clean build bintrayUpload -PbintrayUser=hyman
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
你可以选择在Android Studio的Terminal面板进行,如下图。
ok,然后就和上面普通项目的步骤一致了,去Add to Jcenter
,之后等待。
如果审核成功,你会发现3个module都会被同步到jcenter上,比如访问http://jcenter.bintray.com/com/zhy/
:
在使用时,对于compiler需要引入apt的插件,大致类似如下用法:
apply plugin: ‘com.neenbedankt.android-apt’
dependencies {
apt ‘com.zhy:mpermission-compiler:1.0.0’
compile ‘com.zhy:mpermission-api:1.0.0’
}
ok,当然本文的重点在于上传,其他方面细节就不赘述了。
三、注意事项
(1)版本更新
我们上传完成后,肯定会涉及到更新问题,那么怎么更新呢?
publish {userOrg = 'hyman'//bintray.com用户名groupId = 'com.hyman'//jcenter上的路径artifactId = 'basetools'//项目名称publishVersion = '2.0.0'//修改版本号desc = 'Oh hi, this is a nice description for a project, right?'//描述,不重要website = 'https://github.com/hyman/basetools'
}
什么都不用动,唯独修改下版本号就可以了,修改完成,执行上传那段代码。
(2)你是windows系统
gradlew clean build bintrayUpload -PbintrayUser=hyman
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
前面的./
就不要输入了,这属于比较基础的问题了。
(3)乱码问题
注释中有中文,可能会出现:编码GBK的不可映射字符
项目的build.gradle中添加:
allprojects {tasks.withType(Javadoc) {options{encoding "UTF-8"charSet 'UTF-8'links "http://docs.oracle.com/javase/7/docs/api"}}
}
还有上传过程中的一些问题,确定你的用户名正确,偶尔需要科学上网。
那么如何利用bintray-release
上传开源项目到jcenter就介绍完毕了,希望能够节省你的时间~
欢迎关注我的微博:
http://weibo.com/u/3165018720
关注微信公众号:hongyangAndroid
(欢迎关注,第一时间推送博文信息)
Android 快速发布开源项目到jcenter相关推荐
- 利用Android Studio快速发布开源项目到Jcenter
前言 在Android开发中我们经常使用第三方的开源项目,在app/build.gradle中compile类库,不用去下载文件以lib或modulelib的方式引入,是不是很方便呢? 如使用Butt ...
- Android 发布开源项目到jcenter
简介 相信现在android程序猿们大多都使用了studio进行开发,想必大家对于compile 'com.android.support:appcompat-v7:23.3.0'这种方式引入开源项目 ...
- GitHub Android 最火开源项目Top20
GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上.基于不要重复造轮子的原则,了解当下比较流行的Android与i ...
- Android专用Log开源项目——KLog - 泡在网上的日子
Android专用Log开源项目--KLog 泡在网上的日子 / 文 发表于2015-11-15 13:55 第4427次阅读 log 1 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以 ...
- Android 收集的开源项目和文章集合
Android 收集的开源项目和文章集合 置顶2017年12月21日 16:06:45 阅读数:3128 2017-12-21 1.仿QQ说说发图片选择框架 https://github.com/y ...
- 建立企业内部maven服务器并使用Android Studio发布公共项目
转载:建立企业内部maven服务器并使用Android Studio发布公共项目 nexus 3.0.0版本,win 7直接装完就能用了,不用再走1.3步了,不过最好也看一下1.3 转载于:https ...
- VMware顺容器之势而为,发布开源项目Lightwave和Photon
本文讲的是VMware顺容器之势而为,发布开源项目Lightwave和Photon,[编者的话]VMware是老牌的虚拟化技术提供商,但Docker等容器技术对其核心业务造成了不小的冲击,为了应付这种 ...
- Android studio 使用Gradle发布Android开源项目到JCenter 总结
1.注册账号 先到https://bintray.com注册一个账号. 这个网站支持 github 账户直接登录的 2.获取 bintray.user 和 bintray.apikey ...
- ijk基于exo_github上十二款最著名的Android播放器开源项目
1.ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Android/iOS 视频播放器.实现了跨平台功能,API 易于集成:编译配置可裁剪,方便控制 ...
最新文章
- Centos中文输入法安装以及切换
- 电脑的基础术语_运营小白,你应该知道的基础专业术语
- Java基础:JDK、JRE、JVM的区别与联系
- 【知识星球】Attention网络结构上新,聚焦才能赢
- python zipfile 模块下中文乱码 '╡┌╥╗╒┬_╒╨▒Ω╣½╕µ.docx'
- 神经网络 | 基于脉冲耦合神经网络(PCNN)的图像特征提取(Matlab源代码)
- 04Prism WPF 入门实战 - Module
- 加分二叉树 java_P1040 加分二叉树
- JDBC(二)驱动程序类型发展历程
- 查看服务器文件夹,远程查看服务器文件夹内的文件夹
- oracle vm发现无效设置_Oracle数据库编译失效对象相关命令总结大全,值得收藏
- 服务器biosraid管理
- 妙用Python内置函数int()快速计算等比数列前n项和
- 小量数据和海量数据分页显示存储过程
- Java基础篇:什么是死锁?如何去避免它?
- 数理化计算机电子 武大水平,全方位比较南开大学、武汉大学——以数据为基础.doc...
- 网易云课堂-吴恩达机器学习-学习归纳-1-初识机器学习
- sap linux系统安装教程,SAP系统安装步骤 --- 46C OR 4.7
- andriod自带模拟器使用代理
- 【学习总结】标准日本语(陈述句)
热门文章
- 上海发文支持NFT 文交所入局:数字藏品趋势已到!
- RGB与LAB优化互转
- 行业案例分析1------------经营分析报告方法
- 生鲜自提柜能否疫战成名?未来是一片蓝海还是一地鸡毛?
- vue.js毕业设计,基于vue.js前后端分离电影院售票系统(H5移动项目) 开题报告
- 软件工程 - 生产率和工作量度量
- 树莓派外设开发之超声波
- 总监和总监不一样,看管理人数
- python中file是什么意思中文_15_【Python学习分享文章】_file(文件)及其操作
- 关于通用型人工智能语言模型ChatGPT的感悟