• 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这是您声明依赖项的地方,这些依赖项仅在测试运行时需要,而不是在测试编译时需要。

    常见配置升级

    删除的配置新配置
    compileapi或者implementation
    runtimeruntimeOnly
    testRuntimetestRuntimeOnly
    testCompiletestImplementation
    RuntimeRuntimeOnly
    CompileImplementation
  • 相关阅读:
    xargs使用技巧 —— 筑梦之路
    MySQL备份与恢复
    Python的面向对象、继承、多态和对象的消失与重生
    【科研】浅学Cross-attention?
    MyCat安装
    Maven的安装与配置以及注意事项
    Sass 使用
    url跳转打开方式
    电子量产项目框架--基本思想
    数据结构 —— 堆(超详细图解 & 接口函数实现)
  • 原文地址:https://blog.csdn.net/superzhang6666/article/details/126490785