Gradle 中 api、implementation、compileOnly、provide 区别与联系

Gradle7

在 Gradle 7 中,compile和runtime配置都被删除了。因此,您必须迁移到上面的implementation和api配置。如果您仍在java为 Java 库使用该插件,则需要改为应用该java-library插件。

都属于java库插件

java库插件依赖配置

在这里插入图片描述

  • 绿色的配置是用户应该用来声明依赖关系的配置

  • 粉红色的配置是组件编译或针对库运行时使用的配置

  • 蓝色的配置是组件内部的,供自己使用

测试配置

在这里插入图片描述

java库插件配置表

配置名称 使用及描述
api 该依赖方式会传递所依赖的库,当其他module依赖了该module时,可以使用该module下使用api依赖的库。(传递依赖)用于编译时和运行时。(取代以前的compile
implementation 只能用于当前模块下,模块内部使用 取代以前的 compile,使用该方式依赖的库将会参与编译和打包
compileOnly 代替以前的provided ,只在编译时有效,不会参与打包可以在自己的moudle中使用该方式依赖一些比如com.android.support,gson这些使用者常用的库,避免冲突。
compileOnlyApi 这是您声明模块和使用者在编译时需要但在运行时不需要的依赖项的地方。这通常包括在运行时发现时被遮蔽的依赖项。
runtimeOnly 只在生成apk的时候参与打包,编译时不会参与,很少用。代替以前的 apk
testImplementation 只在单元测试代码的编译以及最终打包测试apk时有效。代替以前版本的testCompile
testCompileOnly 这是您声明依赖项的地方,这些依赖项仅在测试编译时需要,但不应泄漏到运行时。这通常包括在运行时发现时被遮蔽的依赖项。
testRuntimeOnly 这是您声明依赖项的地方,这些依赖项仅在测试运行时需要,而不是在测试编译时需要。

常见配置升级

删除的配置 新配置
compile api或者implementation
runtime runtimeOnly
testRuntime testRuntimeOnly
testCompile testImplementation
Runtime RuntimeOnly
Compile Implementation

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...