Android仓库

简单的普及下关于android的依赖仓库,有两种分别是JcenterMaven Central其实不管是Jcenter还是Maven Central都是Maven库。

Jcenter

Jcenter是由bintray.com维护,在Android Studio的项目根目录的build.gradle中我们会看到自动帮我们实现的Jcenter

  1. buildscript {
  2. repositories {
  3. jcenter()
  4. }
  5. }

Maven Central

当然也可以在build.gradle中定义Maven Central

  1. buildscript {
  2. repositories {
  3. mavenCentral()
  4. }
  5. }

至于在Android Studio中为什么默认使用Jcenter原因还是有的,感兴趣的可以自己去查,我要说的一点就是,这里你可以认为JcenterMaven Central的超集,这样就能更好的理解为什么要使用Jcenter了。

gradle获取library

这里要了解一下我们看到的依赖所定义的方式,其实是有格式的并不是随便乱写的。其实你只要平常够仔细就能发现他们的格式是一样的。
GroupIdArtifactIdVersionId组成。例如com.jakewharton:butterknife:6.1.0'它的GroupIdcom.jakewhartonArtifactIdbutterknifeVersionId6.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插件

  1. classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
  2. classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3

添加bintray认证

找到local.properties文件在其中添加

  1. bintray.user=xxxx
  2. bintray.apikey=xxx

bintray.user是注册的user,至于bintray.apikeyJFrog Bintray中的Your ProfileEdit页面的API Key中能找到。

修改Module中的build.gradle

在其中添加如下示例代码:

  1. apply plugin: 'com.android.library'
  2. ext {
  3. bintrayRepo = 'maven'
  4. bintrayName = 'mypicker'
  5. publishedGroupId = 'com.idisfkj.picker'
  6. libraryName = 'MyPicker'
  7. artifact = 'mypicker'
  8. libraryDescription = 'A pickerView on Android'
  9. siteUrl = 'https://github.com/idisfkj/idisfkj.picker'
  10. gitUrl = 'https://github.com/idisfkj/idisfkj.picker.git'
  11. libraryVersion = '1.2.1'
  12. developerId = 'idisfkj'
  13. developerName = 'idisfkj'
  14. developerEmail = 'idisfkj@qq.com'
  15. licenseName = 'The Apache Software License, Version 2.0'
  16. licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
  17. allLicenses = ["Apache-2.0"]
  18. }

同时在最后添加两个脚本

  1. apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
  2. apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

这是我这个依赖的示例。其中bintrayRepo是默认的使用mavenmypicker是建立的package namesiteUrl是你的项目地址,我的项目在github上,所以是github项目的地址形式。gitUrlVCS。其他应该没什么问题,相应的改成自己的信息。

这样就构建好了依赖com.idisfkj.picker:mypicker:1.2.1

上传到bintray

打开Android Studio的终端

编译library文件

在终端输入

  1. ./gradlew install

出现BUILD SUCCESSFUL就没问题

上传

在终端输入

  1. ./gradlew bintrayUpload

一样的出现BUILD SUCCESSFUL就没问题
然后你进入JFrog Bintray进入maven你就会发现其中多了一个package,如果有的话那就表示完美成功。

同步到Jcenter

完成了上面的步骤并不代表别人可以直接使用

  1. dependencies {
  2. compile 'com.idisfkj.picker:mypicker:1.2.1'
  3. }

还要添加

  1. repositories {
  2. maven {
  3. url 'https://dl.bintray.com/idisfkj/maven/'
  4. }
  5. }

所以我们要同步到Jcenter中,怎么同步呢?别急,只要在你刚刚生成的package中点击Add to Jcenter即可。

进去之后直接发送就可以,不需要填写什么。

最后就是等待了。几个小时之后你会收到考核通过的消息,再返回package就会发现Linked to发生了变化。

现在你也可以通过http://jcenter.bintray.com/com/idisfkj/picker/mypicker/1.2.1 查看。

同时别人也能使用你的依赖,通过如下简单的配置

  1. dependencies {
  2. compile 'com.idisfkj.picker:mypicker:1.2.1'
  3. }

版本更新

对于版本更新,只要更改上面配置的版本号libraryVersion = '1.2.1'改成你要更新的版本,其它不变。再重新上传到bintray

总结

我这里再来整理下上传的思路。

  • 既然要上传到Jcenter上,自然要去https://bintray.com 中注册账号

  • 根据自己的需求创建mavenRepository

  • 把项目分离成Module

  • 在项目根目录的build.gradle中添加bintray插件

  • local.properties中添加bintray认证

  • 修改Module中的build.gradle中的配置

  • Android Studio终端使用./gradlew xxx上传

  • 最后在JFrog Bintray中同步到Jcenter

好了,就到这里了,希望有所帮助!

如何使Android Studio项目发布到Jcenter中的更多相关文章

  1. Android Library项目发布到JCenter最简单的配置方法

    前沿 网上的步骤看起来实在太麻烦,gituhb上偶然间看到的一个项目,经过实际验证确实可行.github连接:https://github.com/xiaopansky/android-library ...

  2. AndroidStudio怎么将开源项目发布到jcenter

    前言 自己在网上搜了一大堆,大体就两种方法,而我选择的是其中代码少的的方法,不过他们或多或少留下了少许的坑,(按他们的方法我是上传成功,但不能发布到jCenter上去,也可能是我自己的问题o(≧v≦) ...

  3. 将Gradle项目发布到Jcenter和Maven Central

    Jcenter和Maven Central 为了方便我们理解Android studio是如何帮助我们获取开源库的,我们需要理清几个概念.Apache Maven是Apache开发的一个工具,提供了用 ...

  4. Android studio 项目(Project)依赖(非Module)

    Android studio 项目(Project)依赖(非Module) 0. 前言 对于Module 级别的依赖大家都知道,今天说下Android Studio下的项目依赖. 场景: A Proj ...

  5. 如何把开源项目发布到Jcenter

    转载自:https://www.jianshu.com/p/f66972f0607a 首先我们应该注册一个JFrog Bintray的账号 Jfrog Bintray官网 这里我们可以注意到那个绿色的 ...

  6. 如何在Android Studio项目中导入开源库?

    前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不 ...

  7. Android Studio项目结构

    我们创建了一个Android Project,打开就如下图所示:  我们选择Project视图,就会有以下的项目文档结构:  上面笔者标注的数字是接下来要讲解的内容. 我们先来看1: 我们创建Appl ...

  8. 【Android Studio安装部署系列】三、Android Studio项目目录结构

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 简单介绍下Android studio新建项目的目录结构. 常用项目结构类型 在Android Studio中,提供了以下几种项目结 ...

  9. 在内网使用Gradle构建Android Studio项目

    在Android Studio项目中,默认的远程仓库为jcenter,如果在项目引用了一些类库,Gradle构建程序的时候会将这些依赖类库从jcenter网站下载到本地,如我们在 build.grad ...

随机推荐

  1. 《Oracle Database 12c DBA指南》第二章 - 安装Oracle和创建数据库(2.2 安装数据库软件)

    当前关于12c的中文资料比较少,本人将关于DBA的一部分官方文档翻译为中文,很多地方为了帮助中国网友看懂文章,没有按照原文句式翻译,翻译不足之处难免,望多多指正. 2.2 安装数据库软件 这部分简短讲 ...

  2. 2015年10月23日JS笔记

    ECMAScript标准:JavaScript核心语法 微软:Jscript ECMAScript标准:一纸空文 JavaScript和JScritp都号称完全实现了 ECMAScript标准 W3C ...

  3. 如何添加网站for Linux(绑定域名)

    [以下配置的路径以阿里云提供的标准环境路径为准,如果您另行安装,请根据实际安装路径配置].   1.cd /alidata/server/httpd/conf/vhosts/ 进入绑定域名所在目录, ...

  4. [读书笔记]了不起的node.js(三)

    这周的nodejs学习内容为几个依赖包的使用,把书上的例子都敲了一遍.这篇就以例程为线索,复习一下一周的工作. 1.connect 这个例程主要是使用connect依赖包,connect提供一个中间件 ...

  5. ffmpeg ffprobe ffplay

    ./ffprobe -print_format json -show_format -show_frames -select_streams v -i ../hhh.flv ./ffprobe -pr ...

  6. Django model中 双向关联问题,求帮助

    Django model中 双向关联问题,求帮助 - 开源中国社区 Django model中 双向关联问题,求帮助

  7. 关于AS3里的Matrix3D中的appendXXX和prependXXX

    最近在看3D相关的一些基础,因为搞as3这么多年了,决定3D基础这块还是从AS3入手,3D游戏开发这块从U3D入手,扯远了,研究Matrix3D类时发现了矩阵处理转换时的一些方法均分为appendXX ...

  8. Linux基本操作 9----- 认识与学习bash

    一 认识bash这个shell 1 管理整个计算机硬件的其实就是操作系统的内核,这个内核是需要被保护的,所以我们一般用户就只能通过shell来跟内核通信,以让内核达到我们所想打到的工作. 2 只要能够 ...

  9. [一位菜鸟的COCOS-2D编程之路]精灵表单的制作以及简易动画的生成

    1.第一步:使用Zwoptex 制作精灵表单 2.制作的表单的名称为 cocos2Dpng,cocos2D.plist: 3.精灵的动画效果 主要分为五部分. // on "init&quo ...

  10. oracle下的OVER(PARTITION BY)函数介绍

    转自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数          ...