Android Gradle中的新实现关键字是什么

Android Gradle中的新实现关键字是什么,android,android-studio,gradle,Android,Android Studio,Gradle,我最近将Android studio更新为3.0版。现在在build.gradle中,所有依赖项都是使用implementation关键字而不是旧的compile关键字添加的 dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:25.4.0' } 但是compile关键字仍然有效。编译和

我最近将Android studio更新为3.0版。现在在
build.gradle
中,所有依赖项都是使用
implementation
关键字而不是旧的
compile
关键字添加的

dependencies {
     implementation fileTree(include: ['*.jar'], dir: 'libs')
     implementation 'com.android.support:appcompat-v7:25.4.0'
}

但是
compile
关键字仍然有效。
编译
实现
之间有什么区别?

编译
已被弃用,因此库使用
api
实现

Gradle 3.4引入了新的Java库插件配置,允许您控制是否将依赖项发布到使用该库的项目的编译和运行时类路径。Android插件采用了这些新的依赖配置,迁移大型项目以使用它们可以大大缩短构建时间

实施

如果一个实现依赖项改变了它的API,Gradle只重新编译该依赖项和直接依赖它的模块。大多数应用程序和测试模块都应使用此配置

api

当一个模块包含一个api依赖项时,它会让Gradle知道该模块想要将该依赖项以传递方式导出到其他模块,以便它们在运行时和编译时都可以使用该依赖项。此配置的行为类似于compile(现在已弃用),您通常只应在库模块中使用它。这是因为,如果api依赖项更改了其外部api,Gradle将在编译时重新编译所有能够访问该依赖项的模块

阅读