一、引言

作为Android开发人员都知道,在使用Android Studio工具开发只要增加依赖导入就可以加载公共库,这个是相当的方便,也是AS的优势之一,那么这个是什么原理呢?Android Studio 是基于 Gradle 构建系统,并通过适用于 Gradle 的 Android 插件提供更多面向 Android 的功能。通俗来讲,大部分工程都不太可能完全自给自足,一般你都会用到其他工程的文件,这些文件就是工程的依赖。Gradle 需要你告诉它工程的依赖是什么,它们在哪,然后帮你加入构建中。依赖可能需要去远程库下载,比如 Maven 或者 Ivy 库。也可以是本地库,甚至可能是另一个工程。

二、项目的仓库依赖

一个工程中,项目的依赖关系在 build.gradle 文件中按名称指定。 Gradle 可自动查找您的依赖关系,并在构建中提供。 可以在 build.gradle 文件中声明模块依赖关系、远程二进制依赖关系以及本地二进制依赖关系。而依赖仓库需在Android Studio工程根目录下的build.gradle文件中指定,其中可以设置使用多种类型的仓库,来获取应用中使用的库文件。

例如:

repositories {google()    //since gradle 4.0jcenter()mavenCentral()maven { url "https://jitpack.io" }maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }maven { url 'http://maven.oschina.net/content/groups/public/' }maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }maven { url "http://maven.springframework.org/release" }maven { url "http://maven.restlet.org" }maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" }ivy { url "http://repo.mycompany.com/repo" }
}

常见的类型有如下几种:

类型 说明
Maven central repository Maven的中央仓库,无需配置,直接声明就可以使用,但不支持https协议访问
Maven JCenter repository JCenter中央仓库,实际也是是用的maven搭建的,但相比Maven仓库更友好,通过CDN分发,并且支持https访问
Maven google repository Google 自家的 maven 仓库
Maven local repository Maven本地的仓库,可以通过本地配置文件进行配置
Maven repository 常规的第三方Maven仓库,可设置访问Url
Ivy repository Ivy仓库,可以是本地仓库,也可以是远程仓库

Android Studio Gradle 主要支持两个 Maven 中央库:mavenCentral 和 jcenter,配置项目时默认使用 mavenCentral。

maven 仓库规范:

maven {url 'xxx'
}

或者

maven { url 'xxx' }

三、重点仓库介绍

Maven 是什么,请参考 Apache Maven。Maven 包集中存放的地方,就是 Maven 仓库。这些仓库,可以是放在本地,也可以放在某个远程服务器上。可以是私有仓库,也可以是公开的。

3.1 mavenCentral

mavenCentral 则是由sonatype.org维护的Maven仓库,是最早的 maven 中央仓库。

3.2 jcenter

jcenter是一个由 bintray.com维护的Maven仓库,它是当前世界上最大的Java和Android开源软件构件仓库。 所有内容都通过内容分发网络(CDN)使用加密https连接获取。

注意,虽然jcenter和Maven Central 都是标准的 android library仓库,但是它们维护在完全不同的服务器上,由不同的人提供内容,两者之间毫无关系。在jcenter上有的可能 Maven Central 上没有,反之亦然。

3.3 google

Google自家的maven 仓库,可以通过 这里 查看支持支持下载的包。

3.4 jitpack.io

JitPack实际上是一个自定义的Maven仓库,不过它的流程极度简化。是一个用于JVM和Android项目的新开源仓库,它按需构建Git项目,并为提供即用型工件(jar,aar)。傻瓜式的操作,真的很方便。

3.5 aliyun

阿里云在2016年08月上线了Maven仓库,URL: http://maven.aliyun.com ,即:

 maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }

解决国内使用Maven从仓库下载Jar或其他文件的时候响应速度慢的问题。

四、总结

上面概括了依赖库及加载方式,实际上,开发者一般也不管放在哪里,只要能引用到就行。反过来,那如何添加或分享自已的开源库呢?推荐使用jitpack.io发布Android、Java项目,通过gradle、maven方式引用。使用jitpack.io,相比之前jcenter,简化及方便了非常多,操作说明可以参考 jitpack官网。

Refer

  • jcenter()
  • mavenCenteral()
  • google()
  • jitpack.io

Android工程Gradle仓库配置及说明相关推荐

  1. gradle仓库配置

    Android Studio使用Gradle构建app.Gradle的使用非常灵活,其中可以设置使用多种类型的仓库,来获取应用中使用的库文件.  支持的类型有如下几种: 类型 说明 Maven cen ...

  2. maven工程私服仓库配置(阿里云仓库)

    1.首先在maven的配置文件中添加阿里云镜像 在setting.xml文件中添加 <mirrors>         <mirror>             <id& ...

  3. 【Kotlin 协程】协程简介 ( 协程概念 | 协程作用 | 创建 Android 工程并进行协程相关配置开发 | 异步任务与协程对比 )

    文章目录 一.协程概念 二.协程作用 三.创建 Android 工程并进行协程相关配置 1.创建 Android 工程 2.配置协程环境 3.布局文件 4.异步任务代码示例 5.协程代码示例 6.完整 ...

  4. android jenkins 动态版本,Jenkins工具(二)之 Jenkins集成android工程

    本文演示Jenkins+Android+Gradle+Git的协同工作方法.主要介绍Jenkins如何对android工程进行持续集成,该android工程是通过gradle工具进行构建,并通过git ...

  5. Gradle简单配置

    写在前面:一开始配置gradle的时候,最好不要把他maven仓库配置在一起,前段时间配置公司项目身心俱疲.大部分公司里面用gradle都是配置的自己的仓库地址,所以有的东西就不要和网上的配置保持一致 ...

  6. 【Android Gradle 插件】工程根目录下 build.gradle 配置文件 ( 远程仓库配置 | 依赖配置 | 所有子模块配置 | task clean 任务 )

    文章目录 一.工程根目录下 build.gradle 配置文件 1.基本作用 2.远程仓库配置 3.依赖配置 3.所有子模块配置 4.task clean 任务 Android Plugin DSL ...

  7. Android Studio gradle配置阿里云仓库

    打开android >> build.gradle文件 buildscript {ext.kotlin_version = '1.6.10'repositories {//google() ...

  8. Android Studio之gradle的配置与介绍

    1.gradle的简单介绍 Gradle是可以用于Android开发的新一代的Build System,也是Android Studio默认的build工具.其实Gradle脚本是基于一种JVM语言- ...

  9. Android中的Gradle之配置及构建优化

    一.Gradle简介 1.Gradle是什么? Gradle是一种项目自动化构建工具,基于Groovy语言来声明项目设置,同时支持kotlin文件xxx.gradle.kts作为DSL(Domain ...

最新文章

  1. Android 保存崩溃日志到本地目录下
  2. 13、MySQL比较运算符
  3. 实验Matlab数值运算,MATLAB数值实验一(数据的插值运算及其应用完整版
  4. Java面向对象抽象类案例分析
  5. 敏捷开发用户故事系列之一:何为用户故事
  6. Java多线程详解(线程池)
  7. scala下使用akka计算圆周率pi
  8. 【TeeChart .NET教程】(六)使用系列
  9. OAuth2.0+SpringSecurity+Jwt实现系统的登录认证,用户授权
  10. Android之drawable下快速生成icon图片vector
  11. 华为手机里的计算机怎么设置,华为手机电脑发短信(华为手机怎么把短信弄到电脑上)...
  12. 宝塔面板安全入口登录问题
  13. C++怎么操作EXCEL
  14. 国务院推进电子签章在招投标领域应用,实现招投标全流程电子化
  15. 王权游戏中“帽子王”成就的获取
  16. 什么是RFID? RFID简介,射频识别技术发展历史.金属液体对RFID的影响
  17. OpenVINO 2021r4.1 - 瞎搞YOLOV5 模型转换,INT8量化及C++推理实现
  18. 考研复试计算机组成原理篇
  19. Java学习——基础知识之运算符和输入输出
  20. win10系统变为未激活状态的教程

热门文章

  1. OLTP和OLAP的区别
  2. go语言生成uuid
  3. A+B for Input-Output Practice (I)
  4. struts2上传文件时把文件放到服务器真实路径下的webapps\upload下
  5. 面向对象的特点_java基础 之 面向对象
  6. filter vue 循环_详解在Vue.js编写更好的v-for循环的6种技巧
  7. excel高级筛选怎么用_excel中使用高级筛选7个示例、多个条件、复制到另一个工作表公式...
  8. 新拟物素材|UI设计领域必掌握的要领!
  9. 设计网站导航|强大且智能的设计师导航
  10. cdn共振为什么要拍身份证_干货 | 拍婚纱照为什么要提前预约呢?