曹耘豪的博客

Gradle dependencies 的各种方式

  1. 各种依赖方式
    1. implementation
    2. api
    3. compile
    4. providedCompile
    5. debugCompile (debugImplementation)
    6. releaseCompile (releaseImplementation)
    7. testCompile (testImplementation)
    8. apk(runtimeOnly)
    9. runtime
  2. 查看依赖

各种依赖方式

implementation

对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。

举个例子,A依赖B,B依赖C,如果B依赖C是使用的implementation依赖,那么在A中是访问不到C中的方法的,如果需要访问,请使用api依赖

api

完全等同于compile指令。

compile

这种是我们最常用的方式,使用该方式依赖的库将会参与编译和打包。

在编译的时候需要依赖,在运行的时候也需要

providedCompile

仅在编译的时候需要,但是在运行时不需要依赖.

debugCompile (debugImplementation)

debugCompile 只在debug模式的编译和最终的debug apk打包时有效。

releaseCompile (releaseImplementation)

releaseCompile 仅仅针对Release模式的编译和最终的Release apk打包。

testCompile (testImplementation)

testCompile 只在单元测试代码的编译以及最终打包测试apk时有效。

apk(runtimeOnly)

只在生成apk的时候参与打包,编译时不会参与,很少用。

runtime

仅在运行的时候需要,但是在编译时不需要依赖

查看依赖

1
2
3
4
5
6
7
8
9
# 所有情况依赖
gradle :{module}:dependencies
# 分情况查看依赖
gradle :{module}:dependencies --configuration compile
gradle :{module}:dependencies --configuration compileOnly
gradle :{module}:dependencies --configuration runtime
gradle :{module}:dependencies --configuration testCompile
gradle :{module}:dependencies --configuration testCompileOnly
gradle :{module}:dependencies --configuration testRuntime
   /