compile
虽然存在,但是它已经不被 Gradle 推荐使用,,Gradel 3.0 中已经声明compile 应该被 api 和 implementation 替换。
api
指令完全等同于compile指令,当其他模块依赖于此模块时,此模块使用api声明的依赖包是可以被其他模块使用。
implement
其他模块依赖此模块时,此模块使用implementation声明的依赖包只限于模块内部使用,不允许其他模块使用。
testCompile
只在单元测试代码的编译以及最终打包测试apk时有效。
provided(compileOnly)
只在编译时有效,不会参与打包。
apk(runtimeOnly)
只在生成apk的时候参与打包,编译时不会参与,很少用。
debugCompile
只在 debug 模式的编译和最终的 debug apk 打包时有效。
releaseCompile
仅仅针对 Release 模式的编译和最终的 Release apk 打包。