android Studio使用Gradle构建app。Gradle的使用非常灵活,其中可以设置使用多种类型的仓库,来获取应用中使用的库文件。
支持的类型有如下几种:
类型 | 说明 |
---|---|
Maven central repository | 这是Maven的中央仓库,无需配置,直接声明就可以使用。但不支持https协议访问 |
Maven JCenter repository | JCenter中央仓库,实际也是是用的maven搭建的,但相比Maven仓库更友好,通过CDN分发,并且支持https访问。 |
Maven local repository | Maven本地的仓库,可以通过本地配置文件进行配置 |
Maven repository | 常规的第三方Maven仓库,可设置访问Url |
Ivy repository | Ivy仓库,可以是本地仓库,也可以是远程仓库 |
Flat directory repository | 使用本地文件夹作为仓库 |
以下是几种仓库的使用方法:
Maven central repository
在build.gradle中配置
repositories { mavenCentral() }
就可以直接使用了。
Maven JCenter repository
最常用也是Android Studio默认配置:
repositories { jcenter() }
这时使用jcenter仓库是通过https访问的,如果想切换成http协议访问,需要修改配置:
repositories { jcenter { url "http://jcenter.bintray.com" } }
Local Maven repository
可以使用Maven本地的仓库。默认情况下,本地仓库位于USER_HOME/.m2/repository(例如windows环境中,在C:\Users\NAME.m2.repository),同时可以通过USER_HOME/.m2/下的settings.xml配置文件修改默认路径位置。
若使用本地仓库在build.gradle中进行如下配置:
repositories {
mavenLocal()
}
Maven repositories
第三方的配置也很简单,直接指明url即可:
repositories { maven { url "http://repo.mycompany.com/maven2" } }
Ivy repository
配置如下:
repositories { ivy { url "http://repo.mycompany.com/repo" } }
Flat directory repository
使用本地文件夹,这个也比较常用。直接在build.gradle中声明文件夹路径:
repositories { flatDir { dirs ‘lib‘ } flatDir { dirs ‘lib1‘, ‘lib2‘ } }
使用本地文件夹时,就不支持配置元数据格式的信息了(POM文件)。并且Gradle会优先使用服务器仓库中的库文件:例如同时声明了jcenter和flatDir,当flatDir中的库文件同样在jcenter中存在,gradle会优先使用jcenter的。