Search in sources :

Example 11 with Task

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;
            }
        }
    });
}
Also used : Project(org.gradle.api.Project) Task(org.gradle.api.Task) Transformer(org.gradle.api.Transformer) File(java.io.File)

Example 12 with Task

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;
}
Also used : Task(org.gradle.api.Task)

Example 13 with Task

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.");
}
Also used : Task(org.gradle.api.Task) TaskInstantiationException(org.gradle.api.tasks.TaskInstantiationException)

Example 14 with Task

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)));
}
Also used : Task(org.gradle.api.Task) Test(org.junit.Test)

Example 15 with Task

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)));
}
Also used : Task(org.gradle.api.Task) Test(org.junit.Test)

Aggregations

Task (org.gradle.api.Task)101 Test (org.junit.Test)21 File (java.io.File)19 Expectations (org.jmock.Expectations)14 DefaultTask (org.gradle.api.DefaultTask)13 Project (org.gradle.api.Project)11 ArrayList (java.util.ArrayList)9 IOException (java.io.IOException)5 Map (java.util.Map)5 DefaultAndroidTask (com.android.build.gradle.internal.tasks.DefaultAndroidTask)4 HashSet (java.util.HashSet)4 List (java.util.List)4 Callable (java.util.concurrent.Callable)4 Action (org.gradle.api.Action)4 Spec (org.gradle.api.specs.Spec)4 Closure (groovy.lang.Closure)3 GradleException (org.gradle.api.GradleException)3 InvalidUserDataException (org.gradle.api.InvalidUserDataException)3 TaskDependency (org.gradle.api.tasks.TaskDependency)3 AbstractArchiveTask (org.gradle.api.tasks.bundling.AbstractArchiveTask)3