Gradle中的api,implementation,kapt annotationProcessor的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle中的api,implementation,kapt annotationProcessor的使用相关的知识,希望对你有一定的参考价值。

参考技术A

compile(旧) == api (新) : 使用这个关键字引入的包对与其他module 来说时=是可见的

使用这个关键字implementation 引入的包对与其他module 来说是不可见的

apt(旧) == annotationProcessor: 用来引入注解包。在android Studio 3.0 开始 使用annotationProcessor 代替 apt

在kotlin 项目中不使用 annotationProcessor 来引入注解包, 而是使用 kapt

使用之前要 添加 plugin

api 和 implementaion主要是解决多个module依赖时的重复编译问题。

app -> lib1 -> lib2 即app依赖于lib1,而lib1 则依赖于lib2.

使用 api lib2

那么如果lib2有了改变,则会导致app的重新编译,也就是引入的包对 app 来说是可见

使用 implementation lib2
那么lib2的改变只会影响到lIb1,而不会再影响到app的编译,也就是引入的包对 app 来说是不可见

使用场景:

比如自定义了一个module名字叫做mylibrary, 引入了retrofit2, 如果希望主app 也可以使用mylibrary中引入的retrofit2,可以在mylibrary的build.gradle中是 使用 api 修饰引入的retrofit2

如果希望主app 不希望知道mylibrary中引入了retrofit2,可以在mylibrary的build.gradle中是 使用 implementation修饰引入的retrofit2

以上是关于Gradle中的api,implementation,kapt annotationProcessor的使用的主要内容,如果未能解决你的问题,请参考以下文章

未解决的参考:viewModelScope - Kotlin Android

Gradle中的api,implementation,kapt annotationProcessor的使用

编写 Gradle 插件时的 Gradle Api Sources 和 Doc

Android API 级别 - gradle 编译 - 会运行吗?

破解Gradle Project完全掌握

破解Gradle Project完全掌握