Package: org.gradle.api.plugins.sonar.model

## [Groovy] Class SonarRootModel

- org.gradle.api.plugins.sonar.model.SonarRootModel

- All Implemented Interfaces and Traits:
    SonarModel

      class SonarRootModel
      extends Object

  Configuration options for a project that has the `sonar` plugin applied.

- - ### Properties Summary

    Properties
    Type | Name and description
    --- | ---
    `File` | `bootstrapDir` Directory where the Sonar client library will be stored.
    `String` | `branch` Name of the version control branch that is analyzed.
    `List<SonarModel>` | `childModels` Configuration options for child projects of this project.
    `SonarDatabase` | `database` Configuration options related to the Sonar database.
    `String` | `gradleVersion` The Gradle version to be reported to the Sonar client library.
    `String` | `profile` Selects one of the quality profiles configured via the Sonar web interface, overriding any selection made there.
    `SonarProject` | `project` Per-project configuration options.
    `List<Closure>` | `propertyProcessors` Post-processors for global Sonar properties.
    `SonarServer` | `server` Configuration options related to the Sonar server.

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `void` | `database(Closure config)` Configures database configuration options.
    `void` | `project(Closure config)` Configures per-project configuration options.
    `void` | `server(Closure config)` Configures server configuration options.
    `void` | `withGlobalProperties(Closure block)` Registers a closure for post-processing the global Sonar properties covered by `SonarRootModel`, and for adding further properties not covered by that model.``

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Property Detail

    - #### File bootstrapDir

      Directory where the Sonar client library will be stored. The correct version of the client library is automatically downloaded from the Sonar server before analysis begins. Defaults to `$project.buildDir/sonar`.

    - #### @SonarProperty("sonar.branch") String branch

      Name of the version control branch that is analyzed. Two branches of the same project are considered as different projects in Sonar. Defaults to `null`.

    - #### List<SonarModel> childModels

      Configuration options for child projects of this project.

    - #### @IncludeProperties SonarDatabase database

      Configuration options related to the Sonar database.

    - #### String gradleVersion

      The Gradle version to be reported to the Sonar client library. Only used for identification purposes. Defaults to the current Gradle version.

    - #### @SonarProperty("sonar.profile") String profile

      Selects one of the quality profiles configured via the Sonar web interface, overriding any selection made there. Defaults to `null`.

    - #### SonarProject project

      Per-project configuration options.

    - #### List<Closure> propertyProcessors

      Post-processors for global Sonar properties.

      See Also:
        withGlobalProperties

    - #### @IncludeProperties SonarServer server

      Configuration options related to the Sonar server.

  - ### Method Detail

    - #### void database(Closure config)

      Configures database configuration options. The specified closure delegates to an instance of SonarDatabase.

      Parameters:
        `database` - configuration options

    - #### void project(Closure config)

      Configures per-project configuration options. The specified closure delegates to an instance of SonarProject.

      Parameters:
        `per-project` - configuration options

    - #### void server(Closure config)

      Configures server configuration options. The specified closure delegates to an instance of SonarServer.

      Parameters:
        `server` - configuration options

    - #### void withGlobalProperties(Closure block)

      Registers a closure for post-processing the global Sonar properties covered by `SonarRootModel`, and for adding further properties not covered by that model. The properties are passed to the closure as a map of String keys and values. Keys correspond to the Sonar properties as described in the Sonar documentation.``

      Evaluation of the closure is deferred until build execution time. If this method is called multiple times, closures will be evaluated in the order they have been registered.

      Example:

           withGlobalProperties { props ->
               // add further properties
               props["some.sonar.property"] = "some value"
               props["another.sonar.property"] = "another value"

               // modify existing properties (rarely necessary)
               props["sonar.branch"] = "some-branch"
               props.remove("sonar.profile")
           }

      Parameters:
        `block` - a closure for post-processing global Sonar properties