【问题标题】:What is the difference between an app dependency and a module dependency/plugin?应用程序依赖项和模块依赖项/插件之间有什么区别?
【发布时间】:2016-12-19 00:07:46
【问题描述】:

当使用一些第 3 方库时,我会在我的模块的 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 文件中?

感谢所有建议,我在搜索这方面的信息时遇到问题

【问题讨论】:

    标签: gradle build.gradle


    【解决方案1】:

    三件事。 Gradle plugin,模块dependency,一个构建依赖,放置在构建工具的classpath中。

    插件是 Gradle 知道 tasks 使用什么的方法。有many plugins。欲了解更多信息,请参阅Gradle - Plugin Documentation

    依赖a library that is compiled with your code。以下行使您的模块依赖于 Android AppCompat V7 库。大多数情况下,您可以搜索 MavenJcenter 来查找这些内容。

    compile 'com.android.support:appcompat-v7:24.1.1'
    

    classpath 设置是 needed for Gradle,而不是您的应用。例如,这允许将 Android 的 Gradle 构建工具包含到类路径中,并允许 Gradle 构建应用程序。

    classpath 'com.android.tools.build:gradle:2.1.2'
    

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

    他们可能是。它只是更加模块化而不是。

    【讨论】:

    • 感谢您的回答。任务(插件)是什么意思?
    • 您的问题完全与 Gradle 相关,您可以在那里找到所有必要的参考资料。例如,对于 Java 插件,您运行 clean 任务以删除所有已编译的类文件。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我自己不明白,所以这就是我发现的。我的回答是基于gradle 构建工具。

      插件:

      为后续开发添加额外的任务、存储库、新的 DSL 元素、类路径/构建/运行的配置或依赖项管理。插件是为更大范围的开发而开发的,例如 javakotlinspring-boot

      依赖关系:

      modules/httpserializationdatabase 等任务的库是远程存储在 repositories 或本地存储在 runTimetestbuild 所需的依赖项以配置的方式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

      远程存储库: https://mvnrepository.com/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-31
        • 1970-01-01
        • 1970-01-01
        • 2014-12-09
        • 1970-01-01
        • 2015-06-26
        • 2020-04-26
        • 2015-11-11
        相关资源
        最近更新 更多