# GradleConnector

abstract class GradleConnector

A `GradleConnector` is the main entry point to the Gradle tooling API. You use this API as follows:

1. Call newConnector to create a new connector instance.
2. Configure the connector. You must call forProjectDirectory to specify which project you wish to connect to. Other methods are optional.
3. Call connect to create the connection to a project.
4. When finished with the connection, call close to clean up.

Example:

    ProjectConnection connection = GradleConnector.newConnector()
       .forProjectDirectory(new File("someProjectFolder"))
       .connect();

    try {
       connection.newBuild().forTasks("tasks").run();
    } finally {
       connection.close();
    }

Content copied to clipboard

The connection will use the version of Gradle that the target build is configured to use, for example in the Gradle wrapper properties file. When no Gradle version is defined for the build, the connection will use the tooling API's version as the Gradle version to run the build. Generally, you should avoid configuring a Gradle distribution or version and instead use the default provided by the tooling API.

Similarly, the connection will use the JVM and JVM arguments that the target build is configured to use, for example in the `gradle.properties` file. When no JVM or JVM arguments are defined for the build, the connection will use the current JVM and some default JVM arguments.

`GradleConnector` instances are not thread-safe. If you want to use a `GradleConnector` concurrently you must always create a new instance for each thread using newConnector. Note, however, the ProjectConnection instances that a connector creates are completely thread-safe.

## Gradle version compatibility

The Tooling API is both forwards and backwards compatible with other versions of Gradle. It supports execution of Gradle builds that use older or newer versions of Gradle. Each release of Gradle contains a new release of the Tooling API as well.

The Tooling API supports running builds using Gradle version 4.0 and up.

You should note that not all features of the Tooling API are available for all versions of Gradle. Refer to the documentation for each class and method for more details.

Builds using Gradle 5.0 and up require the use of Tooling API version 3.0 or later.

## Java version compatibility

The Tooling API requires Java 8 or later. The Gradle version used by builds may have additional Java version requirements.

#### Since

1.0-milestone-3

## Constructors

GradleConnector
Link copied to clipboard
constructor()

## Functions

connect
Link copied to clipboard
abstract fun connect(): ProjectConnection
Creates a connection to the project in the specified project directory.
disconnect
Link copied to clipboard
abstract fun disconnect()
Disconnects all ProjectConnection instances created by this connector.
forProjectDirectory
Link copied to clipboard
abstract fun forProjectDirectory(projectDir: File): GradleConnector
Specifies the working directory to use.
newCancellationTokenSource
Link copied to clipboard
open fun newCancellationTokenSource(): CancellationTokenSource
Creates a new CancellationTokenSource that can be used to cancel one or more org.gradle.tooling.LongRunningOperation executions.
newConnector
Link copied to clipboard
open fun newConnector(): GradleConnector
Creates a new connector instance.
useBuildDistribution
Link copied to clipboard
abstract fun useBuildDistribution(): GradleConnector
Specifies to use the Gradle distribution defined by the target Gradle build.
useDistribution
Link copied to clipboard
abstract fun useDistribution(gradleDistribution: URI): GradleConnector
Specifies which Gradle distribution to use.
useGradleUserHomeDir
Link copied to clipboard
abstract fun useGradleUserHomeDir(gradleUserHomeDir: File): GradleConnector
Specifies the user's Gradle home directory to use.
useGradleVersion
Link copied to clipboard
abstract fun useGradleVersion(gradleVersion: String): GradleConnector
Specifies which Gradle version to use.
useInstallation
Link copied to clipboard
abstract fun useInstallation(gradleHome: File): GradleConnector
Specifies which Gradle installation to use.