词汇表

动作

为了执行任务而需要执行的代码。Rakefile 中的动作在代码块中指定。(通常以 do/end 对分隔。)

执行

当任务被执行时,它的所有动作都会按照它们被定义的顺序执行。请注意,与 invoke 不同,execute 始终执行动作(而无需调用或执行先决条件)。

文件任务 (Rake::FileTask)

文件任务是一种旨在创建文件(该文件与任务同名)的任务。当被调用时,文件任务仅在以下一个或多个条件为真时执行。

  1. 关联的文件不存在。

  2. 先决条件的最后修改时间戳晚于现有文件。

因为普通任务始终将当前时间作为时间戳,所以具有普通任务先决条件的文件任务将始终执行。

调用

当任务被调用时,首先我们检查它是否之前被调用过。如果它之前被调用过,则不会执行任何其他操作。如果这是它第一次被调用,那么我们会调用它的每个先决条件。最后,我们通过调用 Rake::Task#needed? 来检查是否需要执行此任务的动作。如果需要该任务,则执行其动作。

注意:即使不需要该任务,也会调用先决条件。

先决条件

每个任务都有一个(可能为空)的先决条件集合。任务 T 的先决条件 P 本身是一个必须在任务 T 之前调用的任务。

规则

规则是在未明确定义任务时合成任务的配方。规则通常合成文件任务。

任务 (Rake::Task)

Rakefile 中的基本工作单元。任务具有名称、一组先决条件和要执行的动作列表。