依赖管理
Gradle 依赖管理
依赖仓库
repositories {
mavenCentral() // 定义仓库为maven中心仓库
}
repositories {
jcenter() // 定义仓库为jcenter仓库
}
repositories {
maven {
url "http://repo.mycompany.com/maven2" // 定义依赖包协议是maven,地址是公司的仓库地址
}
}
repositories { // 定义本地仓库目录
flatDir {
dirs 'lib'
}
}
repositories { // 定义ivy协议类型的仓库
ivy {
url "http://repo.mycompany.com/repo"
}
}
repositories {
mavenCentral artifactUrls:["file://C:/maven/.m2/repository/"]
}
如果是系统的默认配置的:
repositories {
mavenLocal()
}
依赖声明
在 Gradle 3.0 之后,使用了 implementation 与 api 替代了原来的 compile。compile 声明的依赖,使用该方式依赖的库将会参与编译和打包。而 implementation 该依赖方式所依赖的库不会传递,只会在当前 module 中生效。api 该依赖方式会传递所依赖的库,当其他 module 依赖了该 module 时,可以使用该 module 下使用 api 依赖的库。
其他常用的依赖声明还包括:
-
provided(compileOnly): 只在编译时有效,不会参与打包,典型的譬如 lombok 这样的预处理库。
-
testCompile(testImplementation): testCompile 只在单元测试代码的编译以及最终打包测试 apk 时有效。
-
debugCompile(debugImplementation): debugCompile 只在 debug 模式的编译和最终的 debug apk 打包时有效。
-
releaseCompile(releaseImplementation): Release compile 仅仅针对 Release 模式的编译和最终的 Release apk 打包。