app依赖项和模块依赖项/插件有什么区别?

Dai*_*run 11 gradle build.gradle

使用某些第三方库时,我会在模块的build.gradle文件中添加依赖项.

    compile 'com.android.support:appcompat-v7:24.1.1'
Run Code Online (Sandbox Code Playgroud)

或者我添加一个插件

    apply plugin: 'com.neenbedankt.android-apt'
Run Code Online (Sandbox Code Playgroud)

其他一些时候,库需要为我的应用程序的build.gradle文件添加依赖项.

    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
Run Code Online (Sandbox Code Playgroud)

这些依赖项和插件有什么区别?
为什么不能将它们全部设置在一个build.gradle文件中?

所有的建议都很感激,我在搜索这方面的信息时遇到了麻烦

cri*_*007 13

三件事.Gradle 插件,模块依赖项,构建依赖项,它位于构建工具的类路径上.

一个插件是如何摇篮知道什么任务使用.有很多插件.有关详细信息,请参阅Gradle - 插件文档

一个依赖一个与你的代码编译库.以下行使您的模块依赖于Android AppCompat V7库.在大多数情况下,您可以搜索MavenJcenter.

compile 'com.android.support:appcompat-v7:24.1.1'
Run Code Online (Sandbox Code Playgroud)

类路径的设定所需要的摇篮,而不是你的应用程序.例如,这允许这包括Android的Gradle Build Tools到类路径中,并允许Gradle构建应用程序.

classpath 'com.android.tools.build:gradle:2.1.2'
Run Code Online (Sandbox Code Playgroud)

为什么不能将它们都放在一个build.gradle文件中?

他们可能是.它更简单,更模块化.


Sur*_*kha 5

我从一位同事那里得到了这个答案,这有助于我理解。“gradle 插件就像你用来构建应用程序的工具。依赖项是应用程序中包含的库。gradle 插件通常是任务——比如 ktlint 等。”