Package org.gradle.api.reporting

## Interface Reporting<T extends ReportContainer>

- Type Parameters:
    `T` - The base type of the report container
  All Known Implementing Classes:
    `AbstractConfigurationReportTask`, `AbstractTestTask`, `Checkstyle`, `CodeNarc`, `GenerateBuildDashboard`, `HtmlDependencyReportTask`, `JacocoReport`, `OutgoingVariantsReportTask`, `Pmd`, `ResolvableConfigurationsReportTask`, `Test`, `XCTest`

      public interface Reporting<T extends ReportContainer>

  An object that provides reporting options.

  Tasks that produce reports as part of their execution expose configuration options of those reports via these methods. The `Reporting` interface is parameterized, where the parameter denotes the specific type of reporting container that is exposed. The specific type of the reporting container denotes the different types of reports available.

  For example, given a task such as:

       class MyTask implements Reporting<MyReportContainer> {
           // implementation
       }

       interface MyReportContainer extends ReportContainer<Report> {
           Report getHtml();
           Report getCsv();
       }

  The reporting aspects of such a task can be configured as such:

       task my(type: MyTask) {
           reports {
               html.required = true
               csv.required = false
           }
       }

  See the documentation for the specific `ReportContainer` type for the task for information on report types and options.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `T` | `getReports()` | A `ReportContainer` instance.
    `T` | `reports​(Closure closure)` | Allow configuration of the report container by closure.
    `T` | `reports​(Action<? super T> configureAction)` | Allow configuration of the report container by closure.

- - ### Method Detail

    - #### getReports

          T getReports()

      A `ReportContainer` instance.

      Implementers specify a specific implementation of `ReportContainer` that describes the types of reports that are available.

      Returns:
        The report container

    - #### reports

          T reports​(@DelegatesTo(type="T",strategy=1)
                    Closure closure)

      Allow configuration of the report container by closure.

           reports {
             html {
               required false
             }
             xml.outputLocation = "build/reports/myReport.xml"
           }

      Parameters:
        `closure` - The configuration
      Returns:
        The report container

    - #### reports

          T reports​(Action<? super T> configureAction)

      Allow configuration of the report container by closure.

           reports {
             html {
               required false
             }
             xml.outputLocation = "build/reports/myReport.xml"
           }

      Parameters:
        `configureAction` - The configuration
      Returns:
        The report container