anchor.diff:  ==== Directory properties
   
   `String reporting.baseDir`::
  -_The name of the directory to generate reports into, relative to the build directory._ Default value: `reports`
  +The name of the directory to generate reports into, relative to the build directory. Default value: `reports`
   
   `(read-only) File reportsDir`::
  -_The directory to generate reports into._ Default value: `__buildDir__/__reporting.baseDir__`
  +The directory to generate reports into. Default value: `__buildDir__/__reporting.baseDir__`
   
   `String testResultsDirName`::
  -_The name of the directory to generate test result .xml files into, relative to the build directory._ Default value: `test-results`
  +The name of the directory to generate test result .xml files into, relative to the build directory. Default value: `test-results`
   
   `(read-only) File testResultsDir`::
  -_The directory to generate test result .xml files into._ Default value: `__buildDir__/__testResultsDirName__`
  +The directory to generate test result .xml files into. Default value: `__buildDir__/__testResultsDirName__`
   
   `String testReportDirName`::
  -_The name of the directory to generate the test report into, relative to the reports directory._ Default value: `tests`
  +The name of the directory to generate the test report into, relative to the reports directory. Default value: `tests`
   
   `(read-only) File testReportDir`::
  -_The directory to generate the test report into._ Default value: `__reportsDir__/testReportDirName`
  +The directory to generate the test report into. Default value: `__reportsDir__/testReportDirName`
   
   `String libsDirName`::
  -_The name of the directory to generate libraries into, relative to the build directory._ Default value: `libs`
  +The name of the directory to generate libraries into, relative to the build directory. Default value: `libs`
   
   `(read-only) File libsDir`::
  -_The directory to generate libraries into._ Default value: `__buildDir__/__libsDirName__`
  +The directory to generate libraries into. Default value: `__buildDir__/__libsDirName__`
   
   `String distsDirName`::
  -_The name of the directory to generate distributions into, relative to the build directory._ Default value: `distributions`
  +The name of the directory to generate distributions into, relative to the build directory. Default value: `distributions`
   
   `(read-only) File distsDir`::
  -_The directory to generate distributions into._ Default value: `__buildDir__/__distsDirName__`
  -
  -`String docsDirName`:
  -:_The name of the directory to generate documentation into, relative to the build directory._ Default value: `docs`
  +The directory to generate distributions into. Default value: `__buildDir__/__distsDirName__`
  +
  +`String docsDirName`::
  +The name of the directory to generate documentation into, relative to the build directory. Default value: `docs`
   
   `(read-only) File docsDir`::
  -_The directory to generate documentation into._ Default value: `__buildDir__/__docsDirName__`
  +The directory to generate documentation into. Default value: `__buildDir__/__docsDirName__`
   
   `String dependencyCacheDirName`::
  -_The name of the directory to use to cache source dependency information, relative to the build directory._ Default value: `dependency-cache`
  +The name of the directory to use to cache source dependency information, relative to the build directory. Default value: `dependency-cache`
   
   ==== Other convention properties
   
   `(read-only) api:org.gradle.api.tasks.SourceSetContainer[] sourceSets`::
  -_Contains the project's source sets._ Default value: Not null api:org.gradle.api.tasks.SourceSetContainer[]
  +Contains the project's source sets. Default value: Not null api:org.gradle.api.tasks.SourceSetContainer[]
   
   `api:org.gradle.api.JavaVersion[] sourceCompatibility`::
  -_Java version compatibility to use when compiling Java source._ Default value: version of the current JVM in use api:org.gradle.api.JavaVersion[]. Can also set using a String or a Number, e.g. `'1.5'` or `1.5`.
  +Java version compatibility to use when compiling Java source. Default value: version of the current JVM in use api:org.gradle.api.JavaVersion[]. Can also set using a String or a Number, e.g. `'1.5'` or `1.5`.
   
   `api:org.gradle.api.JavaVersion[] targetCompatibility`::
  -_Java version to generate classes for._ Default value: `__sourceCompatibility__`. Can also set using a String or Number, e.g. `'1.5'` or `1.5`.
  +Java version to generate classes for. Default value: `__sourceCompatibility__`. Can also set using a String or Number, e.g. `'1.5'` or `1.5`.
   
   `String archivesBaseName`::
  -_The basename to use for archives, such as JAR or ZIP files._ Default value: `__projectName__`
  +The basename to use for archives, such as JAR or ZIP files. Default value: `__projectName__`
   
   `api:org.gradle.api.java.archives.Manifest[] manifest`::
  -_The manifest to include in all JAR files._ Default value: an empty manifest.
  +The manifest to include in all JAR files. Default value: an empty manifest.
   
   These properties are provided by convention objects of type api:org.gradle.api.plugins.JavaPluginConvention[], and api:org.gradle.api.plugins.BasePluginConvention[].
   
  
positive.code: ==== SourceSet dependency configurations
  
  [.line-through]#`__sourceSet__Compile`#(Deprecated)::
  _Compile time dependencies for the given source set._ Superseded by `__sourceSet__Implementation`.
  
  `__sourceSet__Implementation` extends `__sourceSet__Compile`::
  _Compile time dependencies for the given source set._ Used by `__sourceSet__CompileClasspath, __sourceSet__RuntimeClasspath`.
  
  `__sourceSet__CompileOnly`::
  _Compile time only dependencies for the given source set, not used at runtime._
  
  `__sourceSet__CompileClasspath` extends `compile__SourceSet__Java`::
  _Compile classpath, used when compiling source._ Used by `__sourceSet__Compile, __sourceSet__CompileOnly, __sourceSet__Implementation`.
  
  `__sourceSet__AnnotationProcessor`::
  _Annotation processors used during compilation of this source set._
  
  [.line-through]#`__sourceSet__Runtime`#(Deprecated)::
  _Runtime dependencies for the given source set._ Used by `__sourceSet__Compile`. Superseded by `__sourceSet__RuntimeOnly`.
  
  `__sourceSet__RuntimeOnly`::
  _Runtime only dependencies for the given source set._
  
  `__sourceSet__RuntimeClasspath` extends `__sourceSet__RuntimeOnly, __sourceSet__Runtime, __sourceSet__Implementation`::
  _Runtime classpath contains elements of the implementation, as well as runtime only elements._
  
  [[sec:java_convention_properties]]
  === Convention properties
  
negative.code: 
  The Java plugin adds a number of tasks to your project, as shown below.
  
  `compileJava` — type: api:org.gradle.api.tasks.compile.JavaCompile[]::
  _Depends on_: All tasks which contribute to the compilation classpath, including `jar` tasks from projects that are on the classpath via project dependencies
  +
  Compiles production Java source files using the JDK compiler.
  
  `processResources` — type: api:org.gradle.api.tasks.Copy[]::
  Copies production resources into the production resources directory.
  
  `classes`::
  _Depends on_: `compileJava`, `processResources`
  +
  This is an aggregate task that just depends on other tasks. Other plugins may attach additional compilation tasks to it.
  
  `compileTestJava` — type: api:org.gradle.api.tasks.compile.JavaCompile[]::
  _Depends on_: `classes`, and all tasks that contribute to the test compilation classpath
  +
  Compiles test Java source files using the JDK compiler.
  
  `processTestResources` — type: api:org.gradle.api.tasks.Copy[]::
  Copies test resources into the test resources directory.
  
  `testClasses`::
  _Depends on_: `compileTestJava`, `processTestResources`
  +
  This is an aggregate task that just depends on other tasks. Other plugins may attach additional test compilation tasks to it.
  
  `jar` — type: api:org.gradle.api.tasks.bundling.Jar[]::
  _Depends on_: `classes`
  +
  Assembles the production JAR file, based on the classes and resources attached to the `main` source set.
  
  `javadoc` — type: api:org.gradle.api.tasks.javadoc.Javadoc[]::
  _Depends on_: `classes`
  +
  Generates API documentation for the production Java source using Javadoc. 
  
  `test` — type: api:org.gradle.api.tasks.testing.Test[]::
  _Depends on_: `testClasses`, and all tasks which produce the test runtime classpath
  +
  Runs the unit tests using JUnit or TestNG.
  
  `uploadArchives` — type: api:org.gradle.api.tasks.Upload[]::
  _Depends on_: `jar`, and any other task that produces an artifact attached to the `archives` configuration
  +
  Uploads artifacts in the `archives` configuration — including the production JAR file — to the configured repositories.
  
  `clean` — type: api:org.gradle.api.tasks.Delete[]::
  Deletes the project build directory.
  
  `clean__TaskName__` — type: api:org.gradle.api.tasks.Delete[]::
  Deletes files created by the specified task. For example, `cleanJar` will delete the JAR file created by the `jar` task and `cleanTest` will delete the test results created by the `test` task.
  
  [[java_source_set_tasks]]
  ==== SourceSet Tasks
  
  For each source set you add to the project, the Java plugin adds the following tasks:
  
  
  `compile__SourceSet__Java` — type: api:org.gradle.api.tasks.compile.JavaCompile[]::
  _Depends on_: All tasks which contribute to the source set's compilation classpath
  +
  Compiles the given source set's Java source files using the JDK compiler.
  
  `process__SourceSet__Resources` — type: api:org.gradle.api.tasks.Copy[]::
  Copies the given source set's resources into the resources directory.
  
  `__sourceSet__Classes` — type: api:org.gradle.api.Task[]::
  _Depends on_: `compile__SourceSet__Java`, `process__SourceSet__Resources`
  +
  Prepares the given source set's classes and resources for packaging and execution. Some plugins may add additional compilation tasks for the source set.
  
  ==== Lifecycle Tasks
  
  The Java plugin attaches some of its tasks to the lifecycle tasks defined by the <<sec:base_tasks,Base Plugin>> — which the Java Plugin applies automatically — and it also adds a few other lifecycle tasks:
  
  `assemble`::
  _Depends on_: `jar`, and all other tasks that create artifacts attached to the `archives` configuration
  +
  Aggregate task that assembles all the archives in the project. This task is added by the Base Plugin.
  
  `check`::
  _Depends on_: `test`
  +
  Aggregate task that performs verification tasks, such as running the tests. Some plugins add their own verification tasks to `check`. You should also attach any custom `Test` tasks to this lifecycle task if you want them to execute for a full build. This task is added by the Base Plugin.
  
  `build`::
  _Depends on_: `check`, `assemble`
  +
  Aggregate tasks that performs a full build of the project. This task is added by the Base Plugin.
  
  `buildNeeded`::
  _Depends on_: `build`, and `buildNeeded` tasks in all projects that are dependencies in the `testRuntimeClasspath` configuration.
  +
  Performs a full build of the project and all projects it depends on. 
  
  `buildDependents`::
  _Depends on_: `build`, and `buildDependents` tasks in all projects that have this project as a dependency in theeir `testRuntimeClasspath` configurations
  +
  Performs a full build of the project and all projects which depend upon it.
  
  `build__ConfigName__` — _task rule_::
  _Depends on_: all tasks that generate the artifacts attached to the named — _ConfigName_ — configuration
  +
  Assembles the artifacts for the specified configuration. This rule is added by the Base Plugin.
  
  `upload__ConfigName__` — _task rule_, type: api:org.gradle.api.tasks.Upload[]::
  _Depends on_: all tasks that generate the artifacts attached to the named — _ConfigName_ — configuration
  +
  Assembles and uploads the artifacts in the specified configuration. This rule is added by the Base Plugin.
  
  The following diagram shows the relationships between these tasks.
  
  