# Reporting

interface Reporting<T : ReportContainer?>(source)

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();
    }

Content copied to clipboard

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

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

Content copied to clipboard

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

#### Parameters

<T>

The base type of the report container

#### Inheritors

Pmd
Checkstyle
CodeNarc
JacocoReport
AbstractTestTask
HtmlDependencyReportTask
AbstractConfigurationReportTask
GenerateBuildDashboard

## Functions

getReports
Link copied to clipboard
abstract fun getReports(): T
A ReportContainer instance.
reports
Link copied to clipboard
abstract fun reports(@DelegatesTo(type = "T", strategy = Closure.DELEGATE_FIRST) closure: Closure): T
abstract fun reports(configureAction: Action<in T>): T
Allow configuration of the report container by closure.