package org.infernus.idea.checkstyle.build; import java.io.File; import groovy.lang.Closure; import org.gradle.api.Project; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.tasks.Copy; public class CopyCheckstyleArtifactsToSandboxTask extends Copy { static final String TARGET_SUBFOLDER = "checkstyle/lib"; public CopyCheckstyleArtifactsToSandboxTask() { super(); setGroup("intellij"); configureTask(false); final GatherCheckstyleArtifactsTask gatherTask = (GatherCheckstyleArtifactsTask) getProject().getTasks() .getByName(GatherCheckstyleArtifactsTask.NAME); dependsOn(gatherTask); from(gatherTask.getBundledJarsDir()); } private void configureTask(final boolean pIsTest) { setDescription("Adds the gathered Checkstyle artifacts to the prepared " + (pIsTest ? "test " : "") + "sandbox"); into(new File(getProject().getBuildDir(), "idea-sandbox/plugins" + (pIsTest ? "-test" : "") + "/CheckStyle-IDEA/" + TARGET_SUBFOLDER)); } public void setTest() { configureTask(true); final Project project = getProject(); // The 'test' task now depends on this one project.afterEvaluate(new Closure(this) { @Override public Void call(final Object... args) { project.getTasks().getByName(JavaPlugin.TEST_TASK_NAME).dependsOn(getOwner()); project.getTasks().getByName(CsaccessTestTask.NAME).dependsOn(getOwner()); return null; } }); } }