anchor.diff:  ----
   
   
  -[[constraints]]
  -== Constraints
  -
  -In order to capture the state of the task graph to the configuration cache and reload it again in a later build, Gradle applies certain constraints to tasks and other build logic.
  -Each of these constraints is treated as a configuration cache "problem" and fail the build if violations are present.
  -
  -The following sections describe each of the constraints and how to change your build to fix the problems.
  +[[requirements]]
  +== Requirements
  +
  +In order to capture the state of the task graph to the configuration cache and reload it again in a later build, Gradle applies certain requirements to tasks and other build logic.
  +Each of these requirements is treated as a configuration cache "problem" and fail the build if violations are present.
  +
  +The following sections describe each of the requirements and how to change your build to fix the problems.
   
   [[disallowed_types]]
   === Certain types must not be referenced by tasks
  
positive.code: The configuration cache is automatically invalidated when inputs to the configuration phase change.
  But, you may have to manually invalidate the configuration cache when untracked inputs to the configuration phase change.
  This can happen if you <<configuration_cache#ignore_problems,ignored problems>>, or when remote dependencies changed for example.
  See the <<configuration_cache#constraints>> and <<configuration_cache#not_yet_implemented>> sections below for more information.
  
  The configuration cache state is stored on disk in a directory named `.gradle/configuration-cache` in the root directory of the Gradle build in use.
  If you need to invalidate the cache, simply delete that directory:
  
negative.code: A task must not use any `Project` objects at execution time.
  This includes calling `Task.getProject()` while the task is running.
  
  Some cases can be fixed in the same way as the previous requirement.
  
  Otherwise, to fix, use <<custom_gradle_types#service_injection,injected services>> instead of the methods of `Project`:
  
  