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

compile 和 api 的作用是一样的

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

implementation

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

apt 和 annotationProcessor的作用是一样的

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

kapt

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

使用之前要 添加 plugin

plugins {
    id 'kotlin-kapt'
}

Gradle中的api和implementation的区别

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的使用)