public interface ProjectConnection
ProjectConnection
by using GradleConnector.connect()
.
ProjectConnection connection = GradleConnector.newConnector() .forProjectDirectory(new File("someFolder")) .connect(); try { //obtain some information from the build BuildEnvironment environment = connection.model(BuildEnvironment.class) .get(); //run some tasks connection.newBuild() .forTasks("tasks") .setStandardOutput(System.out) .run(); } finally { connection.close(); }
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 and Description |
---|---|
<T> BuildActionExecuter<T> |
action(BuildAction<T> buildAction)
Creates an executer which can be used to run the given action.
|
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.
|
<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()
<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.
T
- The model type.modelType
- The model type@Incubating <T> BuildActionExecuter<T> action(BuildAction<T> buildAction)
T
- The result type.buildAction
- The action to run.void close()