Gradle文件依赖性

时间:2019-01-18 15:59:16

标签: gradle

我来自多年的make经验。让我感到困惑的一件事是在Gradle中使用了任务依赖性而不是文件依赖性。例如,如果我的C程序具有以下依赖性(makefile格式):

app:file1.o file2.o

file1.o:file1.c file1.h file2.h

file2.o:file2.c file2.h

因此,两个目标文件都依赖于file2.h,并且如果file2.h发生更改,则将重建它们。但是,如果file1.h更改了,则只会构建file1.o。

我该如何在Gradle中表示这一点?我主要对如何使用原始Gradle(而不是使用插件)进行处理感兴趣。

谢谢!

布雷克·麦克布莱德

1 个答案:

答案 0 :(得分:0)

答案与Gradle的增量构建支持有关。它记录在https://blog.gradle.org/introducing-incremental-build-supporthttps://docs.gradle.org/current/userguide/more_about_tasks.html#sec:up_to_date_checks

基本上,对于内置任务,Gradle在内部计算与任务关联的输入和输出文件。然后,它使用此信息来避免执行不必要的任务,从而消除了不必要的步骤。对于自定义任务,Gradle在上面的链接中记录了一种方法,用于告诉Gradle特定任务的输入和输出文件是什么。