gpt4 book ai didi

android - Kotlin Gradle 依赖项中的 "implementation"是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:39:24 26 4
gpt4 key购买 nike

我正在使用 Android Studio 3.0 Preview 来启动新的 Kotlin 项目。当我尝试在 build.gradle 中添加依赖项时,我看到 implementation 范围而不是通常的 compile

androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:appcompat-v7:25.3.1'
testImplementation 'junit:junit:4.12'

还有 androidTestImplementationtestImplementation 范围。

最后,我添加了 compile 来添加第三方依赖,它就可以工作了。

compile 'io.reactivex.rxjava2:rxandroid:2.0.1'

所以我的问题是..

  • 什么是implementationandroidTestImplementationtestImplementation范围?
  • 它与 compiletestCompileandroidTestCompile 有什么不同吗?
  • 我的 Kotlin 项目应该使用哪一个?

编辑:我的错,这个问题不是 Kotlin 特有的。这是新的Android Gradle Plugin configuration .

最佳答案

这不是 Kotlin 特有的,而是与 Android 的新 Gradle 插件有关。

compileprovidedapk 现在已弃用。
使用 implementationapi 代替 compilecompileOnly 代替 provided,以及 runtimeOnly 而不是 apk.

这样做的原因是为了加快多模块构建。给定模块 A 依赖于模块 B,而模块 B 又依赖于模块 C,模块 C 中的更改将触发模块 A 的重新编译。如果A 不直接使用C,那么当C 发生变化时,A 不需要重新编译。

implementation 配置确保了这一点:如果您在 B 中指定 implementation project(':C'),则无法访问 CA 并且您避免构建不必要的模块。在大型多模块项目中,这可以节省大量时间。

Migrate to the new Gradle plugin了解更多信息。

关于android - Kotlin Gradle 依赖项中的 "implementation"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44453296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com