Android工程Gradle仓库配置及说明



一、引言

作为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.0
    jcenter()
    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