Code to be executed in order to perform a task. Actions in a rakefile are
specified in a code block (usually delimited by
When a task is executed, all of its actions are performed, in the order
they were defined. Note that unlike
execute always executes the actions (without invoking or
executing the prerequisites).
A file task is a task whose purpose is to create a file (which has the same name as the task). When invoked, a file task will only execute if one or more of the following conditions are true.
The associated file does not exist.
A prerequisite has a later time stamp than the existing file.
Because normal Tasks always have the current time as timestamp, a FileTask that has a normal Task prerequisite will always execute.
When a task is invoked, first we check to see if it has been invoked
before. if it has been, then nothing else is done. If this is the first
time its been invoked, then we invoke each of its prerequisites. Finally,
we check to see if we need to execute the actions of this task by calling
needed?. Finally, if the task is needed, we execute its
NOTE: Currently prerequisites are invoked even if the task is not needed. This may change in the future.
Every task has a set (possibly empty) of prerequisites. A prerequisite P to Task T is itself a task that must be invoked before Task T.
A rule is a recipe for synthesizing a task when no task is explicitly defined. Rules generally synthesize file tasks.
Basic unit of work in a rakefile. A task has a name, a set of prerequisites and a list of actions to be performed.