anchor.diff:  A task must not use any `Project` objects at execution time.
   This includes calling `Task.getProject()` while the task is running.
   
  -to fix: some cases can be fixed in the same way as the previous constraint.
  -
  -to fix: use <<custom_gradle_types#service_injection,injected services>> instead of the methods of `Project`.
  -
  -* `project.file()` -> `ProjectLayout`
  -* `project.files()` / `project.fileTree()` -> `ObjectFactory`
  -* `project.exec {}` / `project.javaexec {}` -> `ExecOperations`
  -* `project.copy {}` / `project.sync {}` / `project.delete {}` -> `FileSystemOperations`
  -
  -TODO - examples, more details
  +Some cases can be fixed in the same way as the previous constraint.
  +
  +Otherwise, to fix, use <<custom_gradle_types#service_injection,injected services>> instead of the methods of `Project`:
  +
  +* `project.file(path)` -> `ProjectLayout.projectDirectory.file(path)` or `ProjectLayout.buildDirectory.file(path)
  +* `project.files(paths)` -> `ObjectFactory.fileCollection().from(paths)`
  +* `project.fileTree(dir)` -> `ObjectFactory.fileTree().from(dir)`
  +* `project.exec {}`  -> `ExecOperations.exec {}`
  +* `project.javaexec {}` -> `ExecOperations.javaexec {}`
  +* `project.copy {}` -> `FileSystemOperations.copy {}`
  +* `project.sync {}` -> `FileSystemOperations.sync {}`
  +* `project.delete {}` -> `FileSystemOperations.delete {}`
  +
  +// TODO - examples, more details
   
   [[task_access]]
   === Accessing a task instance from another instance
  
positive.code: Tasks should not directly access the state of another instance.
  Instead, tasks should be connected using inputs and outputs.
  
  to fix: connect tasks using input and output relationships. `Property` and `Provider` types can be useful for this.
  
  TODO - examples, more details
  
  [[build_listeners]]
  === Using build listeners
  
  Plugins and build scripts must not register any build listeners.
  
  to fix: use a <<build_services#build_services,build service>>.
  
  TODO - examples
  
  [[undeclared_sys_prop_read]]
  === Undeclared reading of system properties
  
  Plugins and build scripts should not read system properties directly using the Java APIs.
  Instead, these system properties must be declared as a potential build input by using the value supplier APIs.
  
  This problem is caused by build logic similar to this:
  
negative.code: [[undeclared_env_var_read]]
  === Undeclared reading of environment variables
  
  Plugins and build scripts should not read environment variables directly using the Java APIs at configuration time.
  Instead, declare environment variables as potential build inputs using the value supplier APIs.
  
  This problem is caused by build logic similar to this:
  