使用某些第三方库时,我会在模块的build.gradle文件中添加依赖项。
compile 'com.android.support:appcompat-v7:24.1.1'
或者我添加一个插件
apply plugin: 'com.neenbedankt.android-apt'
其他时候,库需要在我的应用程序的build.gradle文件中添加依赖项。
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
这些依赖项和插件有什么区别?
为什么不能将它们全部设置在一个build.gradle文件中?
所有建议都表示赞赏,我在搜索此信息时遇到问题
答案 0 :(得分:9)
三件事。 Gradle 插件,模块依赖,构建依赖项,放置在构建工具的类路径上。
插件是Gradle知道要使用的tasks的方式。有many plugins。有关详细信息,请参阅Gradle - Plugin Documentation
依赖是a library that is compiled with your code。以下行使您的模块依赖于Android AppCompat V7库。在大多数情况下,您可以搜索Maven或Jcenter。
compile 'com.android.support:appcompat-v7:24.1.1'
classpath 设置为needed for Gradle,而不是您的应用。例如,这允许这包括Android的Gradle Build Tools到类路径中,并允许Gradle构建应用程序。
classpath 'com.android.tools.build:gradle:2.1.2'
为什么它们都不在一个build.gradle文件中?
他们可能会。它更简单,更模块化。
答案 1 :(得分:1)
我从同事那里得到了这个答案,这有助于我理解。 “ gradle插件就像您用来构建应用程序的工具。依赖项是应用程序中包含的库。gradle插件通常是任务,例如ktlint等。”
答案 2 :(得分:0)
我自己也不明白这一点,所以这是我发现的。我的回答基于 gradle
构建工具。
插件:
为后续开发添加额外的任务、存储库、新的 DSL 元素、类路径/构建/运行的配置或依赖项管理。插件是为更大范围的开发而开发的,例如 java
、kotlin
或 spring-boot
。
依赖关系:
用于modules
、http
或 serialization
等任务的 database
/libraries 是远程存储在 repositories
或本地存储的依赖项,这些依赖项在 {{1} }、runTime
或 test
由 gradle 以配置的方式解析。
来源:
Spring Boot gradle 插件:https://github.com/spring-projects/spring-boot/tree/master/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin
关于插件/依赖项的 Gradle 文档:https://docs.gradle.org/current/userguide/plugins.html https://docs.gradle.org/current/userguide/core_dependency_management.html