当前开发会用到gradle构建,在对日常遇到的一些问题的排查时,感受到gradle的依赖、依赖查找顺序对于问题排查很有帮助,因此简单总结一下。
依赖
gradle的依赖查找顺序:
- gradle本地仓库一般为~/.gradle/caches/modules-2/files-2.1
- 如果在build.gradle的repositories配置mavenCentral(),则会去maven的本地仓库查找~/.m2/settings.xml
- 按照build.gradle的repositories设置的列表依次下载,并将下载的构件存储到gradle本地仓库
gradle的依赖类型分为:仓库依赖、文件依赖、项目依赖
仓库依赖示例如下
compile 'com.example.android:app-magic:12.3'
compile group: 'com.example.android', name: 'app-magic', version: '12.3'
文件依赖示例如下:
//添加libs文件夹下所有jar包作为依赖
compile fileTree(dir: 'libs', include: ['*.jar'])
//指定jar包作为依赖
compile files('libs/foo.jar', 'libs/bar.jar')
项目依赖示例如下:
compile project(':mylibrary')
仓库
仓库可以直接使用远程仓库
allprojects {
repositories {
jcenter()
}
}
使用maven仓库
allprojects {
repositories {
jcenter()
mavenCentral()
mavenLocal()
maven {
url "https://repo.example.com/maven2"
}
maven {
url "file://local/repo/"
}
ivy {
url "https://repo.example.com/ivy"
}
}
}