【问题标题】:what exactly is "configuration on demand" in Gradle?Gradle 中的“按需配置”到底是什么?
【发布时间】:2016-09-28 07:12:21
【问题描述】:

我最近更改了 Gradle 中的一些设置以加快其进程,其中一项正在更改:gradle.properties 文件中的org.gradle.configureondemand=true 属性。

我知道您可以从“按需配置”这个词中猜到很多,但我想知道此功能的确切影响?如果我将此参数设置为true,我是否必须做一些事情来触发配置?

如果我将其设置为 true 会出什么问题吗?

具体是什么配置阶段?

【问题讨论】:

    标签: android android-studio gradle


    【解决方案1】:

    此设置仅适用于多模块项目。基本上,它告诉 Gradle 配置仅与请求的任务相关的模块,而不是配置所有模块,这是默认行为。

    更准确地回答您的问题:

    • 不,您不必手动触发配置。
    • 是的,如文档中所述,可能会出现问题。这 功能应该非常适用于具有 解耦项目。

    在“按需配置”模式下,项目配置如下:

    • 始终配置根项目。这种方式支持典型的通用配置(所有项目或子项目脚本块)。
    • 执行构建的目录下的项目也配置了,但只在Gradle没有任何任务的情况下执行。这样,在按需配置项目时,默认任务会正确运行。
    • 支持标准项目依赖,并配置相关项目。如果项目 A 对项目 B 具有编译依赖项,则构建 A 会导致两个项目的配置。
    • 支持通过任务路径声明的任务依赖关系,并导致配置相关项目。示例:someTask.dependsOn(:someOtherProject:someOtherTask)
    • 从命令行(或工具 API)通过任务路径请求的任务会导致配置相关项目。例如,构建 projectA:projectB:someTask 会导致 projectB 的配置。

    Here 是完整的文档。

    【讨论】:

    • 非常感谢您的链接,如果 Gradle 可以只配置相关的,为什么还要配置所有这些?我的意思是为什么 Gradle 没有把它作为默认行为?如果这两种方式一切正常,其中一种更快,为什么它不是默认行为?
    • 一开始这样做可能更容易。 “从长远来看,这种模式将成为默认模式,可能是 Gradle 构建执行的唯一模式。”——来自文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2013-05-29
    • 2012-06-11
    相关资源
    最近更新 更多