anchor.diff:  [TIP]
   .Don't forget about the build phases
   ====
  -A task has both configuration and actions. When using the `&lt;&lt;`, you are simply using a shortcut to define an action. Code defined in the configuration section of your task will get executed during the configuration phase of the build regardless of what task was targeted. See <<build_lifecycle>> for more details about the build lifecycle.
  +A task has both configuration and actions. When using the `doLast`, you are simply using a shortcut to define an action. Code defined in the configuration section of your task will get executed during the configuration phase of the build regardless of what task was targeted. See <<build_lifecycle>> for more details about the build lifecycle.
   ====
   
   
  
positive.code: 
  | `UP-TO-DATE`
  | Task's outputs did not change.
  | 
  
  * Used when a task has outputs and inputs and they have not changed. See <<sec:up_to_date_checks>>.
  * Used when a task has actions, but the task tells Gradle it did not change its outputs.
  
negative.code: 
  | `FROM-CACHE`
  | Task's outputs could be found from a previous execution.
  |
  
  * Used when a task has outputs restored from the build cache. See <<build_cache>>.
  
  
  | `SKIPPED`
  | Task did not execute its actions.
  |
  
  * Used when a task has been explicitly excluded from the command-line. See <<sec:excluding_tasks_from_the_command_line>>.
  * Used when a task has an `onlyIf` predicate return false. See <<sec:using_a_predicate>>.
  