# BuildService

interface BuildService<T : BuildServiceParameters?>

Represents a user provided "service" that is used by a Gradle build. Often these services are shared by multiple tasks and hold some state that tasks use to do their work. A service implementation might hold, for example, an in-memory cache that tasks use to improve performance. Or, as another example, a service implementation might represent a web service that the build starts and uses.

To create a service, create an abstract subclass of this interface and use registerIfAbsent to register one or more instances. This method returns a org.gradle.api.provider.Provider that you can use to connect the service to tasks.

A service implementation may optionally take parameters. To do this create a subtype of BuildServiceParameters and declare this type as the type parameter to the service implementation.

A service may optionally implement AutoCloseable, in which case close will be called when the service instance is no longer required. The implementation can release any resources it may be holding open.

It is important to note that service implementations must be thread-safe, as they may be used by multiple tasks concurrently.

#### Since

6.1

#### Parameters

<T>

The type of parameters used by the service.

#### Inheritors

JavaToolchainResolver

## Functions

getParameters
Link copied to clipboard
@Inject
abstract fun getParameters(): T
Returns the parameters of this service.