Android Studio提交库至Bintray jCenter从入门到放弃
来源:互联网 发布:苹果手机录屏软件 编辑:程序博客网 时间:2024/06/16 03:35
文:http://blog.csdn.net/sk719887916/article/details/52473914
作者:Tamic
详细文章请看: [Gradle系列]Gradle发布module库到jcenter, 并构建自己的企业Maven私服
平常在工作中我们常常会引用到第三方开源库,比如butterknife, Gilde, RxJava等等。其中最简单方便快捷的方式就是在gradle中用compile引用,例如
compile 'io.reactivex:rxjava:1.1.3'
有没有想过自己也写一个开源库提供一个引用给别人用?本文介绍如何自己创建一个库给别人用。
首先你要得有库
创建库很简单,网上有大把的事例教程,为了节约篇幅本文只做简单介绍。
在AndroidStudio中先创建一个普通工程,再创建好的工程上右键选择->New->Module
在弹出窗中选择’Android Library’,这样创建的就是传说中的aar包了,一个类似传统jar的包。
然后取一个霸气的名字,这样就搞定了!(但是如果你想让你的主工程用到这个lib还需要在build.gradle中配置一番,网上文章很多不做介绍)
接下来是Bintray和jCenter
啥是Bintray?啥是jCenter?
首先说jCenter,是一个代码库,相当于一个公共的存储控件,简单的来讲就是你把你写好的aar文件及一些文档描述文件之类的东西打包上传到jCenter服务器上,其他人就可以通过jCenter服务器下载到你上传的包了。
那Bintray又是啥?Bintray是jCenter的提供商,他支持上传lib到多个平台,jCenter只是众多平台中的一个,形象的说jCenter是位于某地的仓库,Bintray是送货的卡车,你写的库就是货了。
因此我们要想把自己写的lib分享给其他人,就必须通过Bintray上传到jCenter。首先我们要去Bintray上注册一个账号,或者用Github帐号直接登录。
登录后,在https://bintray.com/profile/edit页面的左边菜单的最下面有API Key复制下来。
在工程的Root gradle中加入
dependencies {....classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'}
可参考
在library的gradle中加入:
apply plugin: 'com.github.dcendents.android-maven'apply plugin: 'com.jfrog.bintray'version = "0.1.1" // 修改为你的版本号def siteUrl = 'https://github.com/h3clikejava/ExtendImageView' // 修改为你的项目的主页def gitUrl = 'https://github.com/h3clikejava/ExtendImageView.git' // 修改为你的Git仓库的urlgroup = "h3c.extendimageview" // Maven Group ID for the artifact,一般填你唯一的包名install {repositories.mavenInstaller {// This generates POM.xml with proper parameterspom {project {packaging 'aar'// Add your description herename 'auto extand ImageView for Android.' //项目描述url siteUrl// Set your licenselicenses {license {name 'The Apache Software License, Version 2.0'url 'http://www.apache.org/licenses/LICENSE-2.0.txt'}}developers {developer {id 'H3c' //填写的一些基本信息name 'H3c'email 'h3clikejava@gmail.com'}}scm {connection gitUrldeveloperConnection gitUrlurl siteUrl}}}}}task sourcesJar(type: Jar) {from android.sourceSets.main.java.srcDirsclassifier = 'sources'}task javadoc(type: Javadoc) {source = android.sourceSets.main.java.srcDirsclasspath += project.files(android.getBootClasspath().join(File.pathSeparator))}task javadocJar(type: Jar, dependsOn: javadoc) {classifier = 'javadoc'from javadoc.destinationDir}artifacts {archives javadocJararchives sourcesJar}Properties properties = new Properties()properties.load(project.rootProject.file('local.properties').newDataInputStream())bintray {user = properties.getProperty("bintray.user")key = properties.getProperty("bintray.apikey")configurations = ['archives']pkg {repo = "maven"name = "extend-imageview" //发布到JCenter上的项目名字websiteUrl = siteUrlvcsUrl = gitUrllicenses = ["Apache-2.0"]publish = true}}
代码有点乱,懒癌犯了,其实蛮简单的,复制上面这一段,修改成自己的参数就好了。具体可以参考这里
这里还需要将你的bintray用户名和apikey写到工程的local.properties文件中
// 示例值, 仅供参考
bintray.user=h3 // your bintray user name
bintray.apikey=c5434272d522d35d1a0123459981225564155753 // your bintray api key
OK,以上配置完就准备上传到Bintray。
通过gradew执行即可
gradew install
gradew bintrayUpload
通常大家都会失败的,原因很多。这里非常坑爹的不做介绍!因为本文后续会教你放弃这个冗长又及其容易失败的方法。
如果你编译成功且正常上传到Bintray,那么恭喜你,你真是太牛了,接下来对于你来说就很容易了
在Versions看到你的版本就说明成功了,接下来点击Add to JCenter
输入一些描述就等待审核。审核完成后即可在第三方库中引用了。
更简单的方式novoda
看完以上的内容,相信你已经知道如何写一个lib库,并通过bintray上传到jCenter了。但是有没有觉得真的好复杂…build.gradle中要配置好多东西,几乎没法自己闭着眼睛写出来,只能从网上搜索了粘贴。
接下来介绍一个更简单的方式是用novoda库,它还是使用了bintray和jCenter,但是会大大简便build.gradle的配置方法。
首先在Root gradle中加入这句话
apply plugin: 'com.novoda.bintray-release' // must be applied after your artifact generating plugin (eg. java / com.android.library)
注意,他必须写在com.android.library 的下面
其次在你的lib gradle中写上这个
publish { userOrg = 'novoda' groupId = 'com.novoda' artifactId = 'bintray-release' publishVersion = '0.3.4' }
在android{} 中需要加入
lintOptions { abortOnError false}
这个时候在AS的终端中运行
$ ./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
把BINTRAY_USERNAME 替换成你的bintary的名字BINTRAY_KEY 替换成你的 Bintray的key 即可
如果成功就恭喜你,如果失败….那原因就很多了,本文坑爹的不做介绍!用飘柔就是这么自信,喜欢Bintray jCenter的同学们自己折腾去吧!
文尾福利,没错我就是飘柔
jCenter应该是目前应用最广的第三方gradle仓库了,但是其申请创建编译上传等流程实在是太麻烦了,感觉是上个世纪八十年代的产物,还需要上传,自己编译,审核之类的,超级容易失败有木有???
本文决定拿出珍藏多年的82年飘柔给大家,博主先干为敬!
JitPack也是一个代码仓库,等同于jCenter,只是暂时用的人没有jCenter多,但是越来越多的开源项目开始使用JitPack了。
真的非常非常的简单,有多简单我们来看看。
比如博主写了一个自用的Android基础库,便于快速构建工程,地址是:
AFastProject(不给我打赏的童鞋记得帮我点星…),由于引用了第三方的库,所以用本文上面两种方式发布aar都出现了问题,各种各样,要么就是无法编译,要么就是丢包,反正折腾了好久。最后用JitPack一句话解决了。。。。
首先打开网址http://jitpack.io
在输入框中输入你的Github工程地址,点击Look up
他会自动遍历出你的最近提交和发布的版本
点击你要引用的选择Get it
在文尾就会告诉你如何引用。
是的,你没看错,客户端什么都不用改。其他工程可以直接引用!
呵呵……用飘柔就是这样么自信
原文链接:http://www.jianshu.com/p/31410d71eaba
- Android Studio提交库至Bintray jCenter从入门到放弃
- Android Studio提交库至Bintray jCenter
- Android Studio发布项目到Bintray jCenter
- 发布 Android Library 到 JCenter 从入门到放弃
- android使用bintray发布aar到jcenter
- 分享 library 到 bintray jcenter代码库
- Android Studio发布JAR包(Android Library)到 jcenter (bintray)
- 使用Android Studio发布开源库到Bintray/Jcenter(新)
- 使用Android Studio发布开源库到Bintray/Jcenter(新)
- Android Studio,Maven,发布包到本地仓库,发布包到 Bintray Jcenter 远程仓库,搭建私有仓库
- Android 使用bintray将本地库上传到JCenter做maven依赖库
- Android提交library到Jcenter
- 提交Android library 到jcenter
- Android从入门到放弃系列--目录
- android从入门到放弃2--ButterKnife
- Android从入门到放弃3-线程
- Android从入门到放弃4-Service
- Android插件化:从入门到放弃
- Arduino 自动初始化ESP8266为透传模式
- 剑指-二进制相加进位
- MVP与MVC
- c#解析EXCEL文件实例复习
- CCF-201403-2-窗口
- Android Studio提交库至Bintray jCenter从入门到放弃
- 基于接口的对象实例,泛型
- 与adb相关的问题,比如掉线问题、Android Studio 提示Session 'app':Error Installing APK、找不到设备
- Kaldi学习笔记 -- 构建字典FST脚本 -- prepare_lang.sh 关键内容解析
- UITextField长度限制的写法
- Http中get和post的区别
- 图书馆管理系统的出路,下一代图书馆管理系统发展方向
- 匿名方法,委托,特性和事件实例复习
- 标准C++_02_面向对象