当使用一些第三方库时,我会在模块的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文件中?
所有的建议是赞赏,我有麻烦搜索信息在这方面
4条答案
按热度按时间ylamdve61#
三件事。Gradle plugins、module dependencies 和build dependencies被放置在build tool* 的classpath(Gradle守护进程本身)上。
Gradle需要 classpath 设置,而不是你的应用。例如,这允许将Gradle Build Tools for Android包含到类路径中,并允许Gradle构建应用程序。
为什么它们不能都在一个build.gradle文件中?
他们可能是。它只是更加模块化而不是。
yrdbyhpb2#
我从一个同事那里得到了这个答案,这帮助我理解了。Gradle插件就像你用来构建应用程序的工具。依赖项是应用中包含的库。gradle插件通常是任务-如ktlint等。”
zzzyeukh3#
我自己也不明白,所以这就是我发现的。我的答案是基于
gradle
构建工具。插件:
添加额外的任务、存储库、新的DSL元素、类路径/构建/运行的配置或后续开发的依赖关系管理。插件是为更大范围的开发而开发的,如
java
、kotlin
或spring-boot
。依赖关系:
modules
/libraries用于http
、serialization
或database
等任务的依赖项远程存储在repositories
上,或本地存储在runTime
、test
或build
上,由gradle以配置的方式解析。来源:
Sping 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.htmlhttps://docs.gradle.org/current/userguide/core_dependency_management.html
远程存储库:https://mvnrepository.com/
zxlwwiss4#
简而言之:
插件用于为软件/工具添加一些附加功能(如Gradle)。Gradle将在构建应用程序时使用添加的插件。
Dependecies用于在源代码中添加一些额外的代码,所以依赖将以库的形式为源代码提供一些额外的代码(如Java中的类)。