use of org.gradle.api.Task in project gradle by gradle.
the class TaskConfiguration method configureInit.
public static void configureInit(final InitBuild init) {
init.setGroup(GROUP);
init.setDescription("Initializes a new Gradle build.");
final Transformer<String, Project> setupCanBeSkipped = new Transformer<String, Project>() {
@Override
public String transform(Project project) {
if (project.file("build.gradle").exists()) {
return "The build file 'build.gradle' already exists. Skipping build initialization.";
}
File buildFile = project.getBuildFile();
if (buildFile != null && buildFile.exists()) {
return "The build file \'" + buildFile.getName() + "\' already exists. Skipping build initialization.";
}
if (project.file("settings.gradle").exists()) {
return "The settings file 'settings.gradle' already exists. Skipping build initialization.";
}
if (project.getSubprojects().size() > 0) {
return "This Gradle project appears to be part of an existing multi-project Gradle build. Skipping build initialization.";
}
return null;
}
};
init.onlyIf(new Spec<Task>() {
@Override
public boolean isSatisfiedBy(Task element) {
Object skippedMsg = setupCanBeSkipped.transform(element.getProject());
if (skippedMsg != null) {
element.getProject().getLogger().warn((String) skippedMsg);
return false;
}
return true;
}
});
init.dependsOn(new Callable<String>() {
@Override
public String call() throws Exception {
if (setupCanBeSkipped.transform(init.getProject()) == null) {
return "wrapper";
} else {
return null;
}
}
});
}
use of org.gradle.api.Task in project gradle by gradle.
the class IncludedBuildDependencyMetadataBuilder method getArtifactTasks.
private Set<String> getArtifactTasks(ComponentArtifactMetadata artifactMetaData) {
Set<String> taskPaths = Sets.newLinkedHashSet();
Set<? extends Task> tasks = artifactMetaData.getBuildDependencies().getDependencies(null);
for (Task task : tasks) {
taskPaths.add(task.getPath());
}
return taskPaths;
}
use of org.gradle.api.Task in project gradle by gradle.
the class IncludedBuildTaskReferenceResolver method constructTask.
@Override
public Task constructTask(final TaskReference reference, TaskContainer tasks) {
if (!(reference instanceof IncludedBuildTaskReference)) {
return null;
}
final IncludedBuildTaskReference ref = (IncludedBuildTaskReference) reference;
String delegateTaskName = ref.getBuildName();
Task task = tasks.findByName(delegateTaskName);
if (task == null) {
return tasks.create(delegateTaskName, CompositeBuildTaskDelegate.class, new Action<CompositeBuildTaskDelegate>() {
@Override
public void execute(CompositeBuildTaskDelegate compositeBuildTaskDelegate) {
compositeBuildTaskDelegate.setBuild(ref.getBuildName());
compositeBuildTaskDelegate.addTask(ref.getTaskPath());
}
});
}
if (task instanceof CompositeBuildTaskDelegate) {
CompositeBuildTaskDelegate delegateTask = (CompositeBuildTaskDelegate) task;
Preconditions.checkState(((CompositeBuildTaskDelegate) task).getBuild().equals(ref.getBuildName()));
delegateTask.addTask(ref.getTaskPath());
return task;
}
throw new TaskInstantiationException("Cannot create delegating task '" + delegateTaskName + "' as task with same name already exists.");
}
use of org.gradle.api.Task in project gradle by gradle.
the class DefaultTaskGraphExecuterTest method testExecutesTasksInASingleBatchInNameOrder.
@Test
public void testExecutesTasksInASingleBatchInNameOrder() {
Task a = task("a");
Task b = task("b");
Task c = task("c");
taskExecuter.addTasks(toList(b, c, a));
taskExecuter.execute();
assertThat(executedTasks, equalTo(toList(a, b, c)));
}
use of org.gradle.api.Task in project gradle by gradle.
the class DefaultTaskGraphExecuterTest method testGetAllTasksReturnsTasksInExecutionOrder.
@Test
public void testGetAllTasksReturnsTasksInExecutionOrder() {
Task d = task("d");
Task c = task("c");
Task b = task("b", d, c);
Task a = task("a", b);
taskExecuter.addTasks(toList(a));
assertThat(taskExecuter.getAllTasks(), equalTo(toList(c, d, b, a)));
}
Aggregations