AutoCloseable
, Closeable
public interface ProjectConnection extends Closeable
Represents a long-lived connection to a Gradle project. You obtain an instance of a ProjectConnection
by using GradleConnector.connect()
.
try (ProjectConnection connection = GradleConnector.newConnector() .forProjectDirectory(new File("someFolder")) .connect()) { //obtain some information from the build BuildEnvironment environment = connection.model(BuildEnvironment.class).get(); //run some tasks connection.newBuild() .forTasks("tasks") .setStandardOutput(System.out) .run(); }
All implementations of ProjectConnection
are thread-safe, and may be shared by any number of threads.
All notifications from a given ProjectConnection
instance are delivered by a single thread at a time. Note, however, that the delivery thread may change over time.
Modifier and Type | Method | Description |
---|---|---|
BuildActionExecuter.Builder |
action() |
Creates a builder for an executer which can be used to run actions in different phases of the build.
|
<T> BuildActionExecuter<T> |
action(BuildAction<T> buildAction) |
Creates an executer which can be used to run the given action when the build has finished.
|
void |
close() |
Closes this connection.
|
<T> T |
getModel(Class<T> modelType) |
Fetches a snapshot of the model of the given type for this project.
|
<T> void |
getModel(Class<T> modelType,
ResultHandler<? super T> handler) |
Starts fetching a snapshot of the given model, passing the result to the given handler when complete.
|
<T> ModelBuilder<T> |
model(Class<T> modelType) |
Creates a builder which can be used to query the model of the given type.
|
BuildLauncher |
newBuild() |
Creates a launcher which can be used to execute a build.
|
TestLauncher |
newTestLauncher() |
Creates a test launcher which can be used to execute tests.
|
<T> T getModel(Class<T> modelType) throws GradleConnectionException, IllegalStateException
This method is simply a convenience for calling model(modelType).get()
T
- The model type.modelType
- The model type.UnsupportedVersionException
- When the target Gradle version does not support the given model.UnknownModelException
- When the target Gradle version or build does not support the requested model.BuildException
- On some failure executing the Gradle build, in order to build the model.GradleConnectionException
- On some other failure using the connection.IllegalStateException
- When this connection has been closed or is closing.<T> void getModel(Class<T> modelType, ResultHandler<? super T> handler) throws IllegalStateException
ResultHandler.onComplete(Object)
method.
If the operation fails, the handler's ResultHandler.onFailure(GradleConnectionException)
method is called with the appropriate exception.
See getModel(Class)
for a description of the various exceptions that the operation may fail with.
This method is simply a convenience for calling model(modelType).get(handler)
T
- The model type.modelType
- The model type.handler
- The handler to pass the result to.IllegalStateException
- When this connection has been closed or is closing.BuildLauncher newBuild()
Requires Gradle 1.0-milestone-8 or later.
TestLauncher newTestLauncher()
Requires Gradle 2.6 or later.
<T> ModelBuilder<T> model(Class<T> modelType)
Any of following models types may be available, depending on the version of Gradle being used by the target build:
GradleBuild
BuildEnvironment
GradleProject
BuildInvocations
ProjectPublications
IdeaProject
BasicIdeaProject
EclipseProject
HierarchicalEclipseProject
A build may also expose additional custom tooling models. You can use this method to query these models.
Requires Gradle 1.0-milestone-8 or later.
T
- The model type.modelType
- The model type<T> BuildActionExecuter<T> action(BuildAction<T> buildAction)
Requires Gradle 1.8 or later.
T
- The result type.buildAction
- The action to run.if you want to hook into different points of the build lifecycle.
BuildActionExecuter.Builder action()
Requires Gradle 4.8 or later.
void close()
close
in interface AutoCloseable
close
in interface Closeable