如何使Android Studio项目发布到Jcenter中
Android仓库
简单的普及下关于android的依赖仓库,有两种分别是Jcenter与Maven Central其实不管是Jcenter还是Maven Central都是Maven库。
Jcenter
Jcenter是由bintray.com维护,在Android Studio的项目根目录的build.gradle中我们会看到自动帮我们实现的Jcenter
buildscript {
repositories {
jcenter()
}
}
Maven Central
当然也可以在build.gradle中定义Maven Central
buildscript {
repositories {
mavenCentral()
}
}
至于在Android Studio中为什么默认使用Jcenter原因还是有的,感兴趣的可以自己去查,我要说的一点就是,这里你可以认为Jcenter是Maven Central的超集,这样就能更好的理解为什么要使用Jcenter了。
gradle获取library
这里要了解一下我们看到的依赖所定义的方式,其实是有格式的并不是随便乱写的。其实你只要平常够仔细就能发现他们的格式是一样的。
由GroupId、ArtifactId与VersionId组成。例如com.jakewharton:butterknife:6.1.0'它的GroupId是com.jakewharton,ArtifactId是butterknife,VersionId是6.1.0。现在看这些依赖是不是更清晰了呢。当我们添加了依赖之后gradle会先去Maven中查找是否有该library如果有就会使用上面定义的形式下载http://jcenter.bintray.com/GroupId/ArtifactId/VersionId
http://jcenter.bintray.com/com/jakewharton/butterknife/6.1.0
http://www.codesocang.com/anzhuoyuanma/
通过该链接下载到本地再与我们的项目结合。
下面正式进行实现依赖的实现
注册
首先要在https://bintray.com 中注册账号,注册都是很简单的就不所说了。
然后回到主页在你的Owned Repositories中看下你是否已经添加了maven。
第一次注册的应该没有,所以我们要先New Repository创建maven
创建之后会自动跳转到maven中,你会发现没有package,我们可以Add New Package这种相信都会,我这里要说的是另外一种,我们直接在Android Studio中进行配置然后上传到Bintray。
代码中配置
分离成多个Module
为了使别人能更好的使用,我们一般在实现自己的依赖的时候会把实现的该依赖的源码作为一个Module,再把实例代码作为Application Module。所以我们要事先处理好Module,下面是我弄好的示例
添加bintray插件
在分了Module之后,首先在项目的根目录的build.gradle的dependencies中添加bintray插件
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3
添加bintray认证
找到local.properties文件在其中添加
bintray.user=xxxx
bintray.apikey=xxx
bintray.user是注册的user,至于bintray.apikey在JFrog Bintray中的Your Profile的Edit页面的API Key中能找到。
修改Module中的build.gradle
在其中添加如下示例代码:
apply plugin: 'com.android.library'
ext {
bintrayRepo = 'maven'
bintrayName = 'mypicker'
publishedGroupId = 'com.idisfkj.picker'
libraryName = 'MyPicker'
artifact = 'mypicker'
libraryDescription = 'A pickerView on Android'
siteUrl = 'https://github.com/idisfkj/idisfkj.picker'
gitUrl = 'https://github.com/idisfkj/idisfkj.picker.git'
libraryVersion = '1.2.1'
developerId = 'idisfkj'
developerName = 'idisfkj'
developerEmail = 'idisfkj@qq.com'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
同时在最后添加两个脚本
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
这是我这个依赖的示例。其中bintrayRepo是默认的使用maven,mypicker是建立的package name,siteUrl是你的项目地址,我的项目在github上,所以是github项目的地址形式。gitUrl是VCS。其他应该没什么问题,相应的改成自己的信息。
这样就构建好了依赖com.idisfkj.picker:mypicker:1.2.1
上传到bintray
打开Android Studio的终端
编译library文件
在终端输入
./gradlew install
出现BUILD SUCCESSFUL就没问题
上传
在终端输入
./gradlew bintrayUpload
一样的出现BUILD SUCCESSFUL就没问题
然后你进入JFrog Bintray进入maven你就会发现其中多了一个package,如果有的话那就表示完美成功。
同步到Jcenter
完成了上面的步骤并不代表别人可以直接使用
dependencies {
compile 'com.idisfkj.picker:mypicker:1.2.1'
}
还要添加
repositories {
maven {
url 'https://dl.bintray.com/idisfkj/maven/'
}
}
所以我们要同步到Jcenter中,怎么同步呢?别急,只要在你刚刚生成的package中点击Add to Jcenter即可。
进去之后直接发送就可以,不需要填写什么。
最后就是等待了。几个小时之后你会收到考核通过的消息,再返回package就会发现Linked to发生了变化。
现在你也可以通过http://jcenter.bintray.com/com/idisfkj/picker/mypicker/1.2.1 查看。
同时别人也能使用你的依赖,通过如下简单的配置
dependencies {
compile 'com.idisfkj.picker:mypicker:1.2.1'
}
版本更新
对于版本更新,只要更改上面配置的版本号libraryVersion = '1.2.1'改成你要更新的版本,其它不变。再重新上传到bintray。
总结
我这里再来整理下上传的思路。
既然要上传到
Jcenter上,自然要去https://bintray.com 中注册账号根据自己的需求创建
maven的Repository把项目分离成
Module在项目根目录的
build.gradle中添加bintray插件在
local.properties中添加bintray认证修改
Module中的build.gradle中的配置在
Android Studio终端使用./gradlew xxx上传最后在
JFrog Bintray中同步到Jcenter中
好了,就到这里了,希望有所帮助!
如何使Android Studio项目发布到Jcenter中的更多相关文章
- Android Library项目发布到JCenter最简单的配置方法
前沿 网上的步骤看起来实在太麻烦,gituhb上偶然间看到的一个项目,经过实际验证确实可行.github连接:https://github.com/xiaopansky/android-library ...
- AndroidStudio怎么将开源项目发布到jcenter
前言 自己在网上搜了一大堆,大体就两种方法,而我选择的是其中代码少的的方法,不过他们或多或少留下了少许的坑,(按他们的方法我是上传成功,但不能发布到jCenter上去,也可能是我自己的问题o(≧v≦) ...
- 将Gradle项目发布到Jcenter和Maven Central
Jcenter和Maven Central 为了方便我们理解Android studio是如何帮助我们获取开源库的,我们需要理清几个概念.Apache Maven是Apache开发的一个工具,提供了用 ...
- Android studio 项目(Project)依赖(非Module)
Android studio 项目(Project)依赖(非Module) 0. 前言 对于Module 级别的依赖大家都知道,今天说下Android Studio下的项目依赖. 场景: A Proj ...
- 如何把开源项目发布到Jcenter
转载自:https://www.jianshu.com/p/f66972f0607a 首先我们应该注册一个JFrog Bintray的账号 Jfrog Bintray官网 这里我们可以注意到那个绿色的 ...
- 如何在Android Studio项目中导入开源库?
前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不 ...
- Android Studio项目结构
我们创建了一个Android Project,打开就如下图所示: 我们选择Project视图,就会有以下的项目文档结构: 上面笔者标注的数字是接下来要讲解的内容. 我们先来看1: 我们创建Appl ...
- 【Android Studio安装部署系列】三、Android Studio项目目录结构
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 简单介绍下Android studio新建项目的目录结构. 常用项目结构类型 在Android Studio中,提供了以下几种项目结 ...
- 在内网使用Gradle构建Android Studio项目
在Android Studio项目中,默认的远程仓库为jcenter,如果在项目引用了一些类库,Gradle构建程序的时候会将这些依赖类库从jcenter网站下载到本地,如我们在 build.grad ...
随机推荐
- 初次接触Object对象变量
Object 变量存储为 32 位(4 个字节)的地址形式,其为对象的引用.利用 Set 语句,声明为 Object 的变量可以赋值为任何对象的引用. 第一次注意到还有个数据类型,帮助文件里只有上面这 ...
- java双亲委派模型如何递归实现
以下是Classloader的中最重要的方法,也就是所谓的双亲委派模型.这个模型第一次在周志明的书上看到,当时看了只知道是类加载过程是首先是委托给父加载器,否则父不能加载,则自己加载,整个过程实则是一 ...
- Matlab GUI界面
做SVD的时候,看学姐的demo,用到了matlab的GUI,感兴趣就自己学了一下: 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件 ...
- C++ 顺序表
C++ 顺序表 /***1顺序表1.必做题 编写程序建立一个数续表,并逐个输出顺序表中所有数据元素的值.编写主函数测试结果. 编写顺序表定位操作子函数,在顺序表中查找是否存在数据元素x. 如果存在,返 ...
- 50道经典的JAVA编程题(41-45)
50道经典的JAVA编程题(41-45),苦逼的程序猿,晚上睡不着了编程吧~今天坚持做10道题!发现编程能是我快乐...O(∩_∩)O哈哈~能平静我烦乱的心,剩下5道题留到考试完了再做吧!该睡觉了.. ...
- 【openstack报错】【metadata问题】‘http://169.254.169.254/2009-04-04/meta-data/instance-id’ failed : url error [[Errno 111] Connection refused]
[时间]2014年2月25日 [平台]ubuntu 12.04.3 openstack havana with nova-network in multi-host [日志]实例启动时输出的日志内容 ...
- ZOJ-3380 Patchouli’s Spell Cards DP, 组合计数
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3380 题意:有m种不同的元素,每种元素都有n种不同的相位,现在假 ...
- 字符流缓冲区的使用之BufferedWriter和BufferedReader
从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取,代码中使用了输入缓冲区的特有的方法:readLine(),获取一行文本数据 import java.io.BufferedRea ...
- JVM之字节码——Class文件格式
如同讲汇编必先讲计算机组成原理,在开始字节码之前,我们先了解一下JVM的主要构成. 在JVM的内部,主要由如下几个部分构成: 1.数据区 方法区:存放类定义信息.字节码.常量等数据,在Sun HotS ...
- oscgit
Gitlab PaaS项目演示 git config --global user.name "你的名字或昵称" git config --global user.email &qu ...