gpt4 book ai didi

gradle - 无法确定 Gradle 为什么在配置阶段下载 compileClasspath 依赖项

转载 作者:行者123 更新时间:2023-12-04 13:50:55 27 4
gpt4 key购买 nike

从阅读如何improve Gradle build performance ,我知道不应该在配置阶段下载依赖项。
我使用远程构建缓存总是在空的 Docker 容器中从头开始运行构建。
我的构建总是下载 :compileClasspath 的所有依赖项即使 :compileJava任务取自构建缓存。
我的印象是,如果 :compileJava,Gradle 不会下载依赖项。已经在缓存中,不需要执行。
这是 sample build.gradle

plugins {
id 'java'
}

repositories {
mavenCentral()
}

dependencies {
def springBootVersion = '2.4.2'

implementation "org.springframework.boot:spring-boot-starter:$springBootVersion"
}

最佳答案

免责声明:到目前为止,我从未使用过 Gradle 的构建缓存功能。这个答案完全基于文档和经验,所以请对我的回答持保留态度。
Gradle 会跟踪任务的输入和输出,以避免在没有任何变化时再次执行它们。 Gradle 的 UP-TO-DATE 表明了这一点。输出。其中,compileJava 的输入任务是项目的源文件及其依赖项。任务输出缓存如下:

Since a task describes all of its inputs and outputs, Gradle can compute a build cache key that uniquely defines the task’s outputs based on its inputs.(Cacheable Tasks)


(重点是我的)
这意味着:构建缓存键由任务的输入组成,并且由于依赖项、它们的源和哈希是 compileJava 的一部分。的输入,必须先解决它们。

关于gradle - 无法确定 Gradle 为什么在配置阶段下载 compileClasspath 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69539481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com