Search in sources :

Example 51 with Task

use of org.gradle.api.Task in project crnk-framework by crnk-project.

the class TSGeneratorPlugin method setupRuntimeDependencies.

private void setupRuntimeDependencies(Project project, Task generateTask) {
    TSGeneratorConfig config = project.getExtensions().getByType(TSGeneratorConfig.class);
    String runtimeConfiguration = config.getRuntime().getConfiguration();
    if (runtimeConfiguration != null) {
        String runtimeConfigurationFirstUpper = Character.toUpperCase(runtimeConfiguration.charAt(0)) + runtimeConfiguration.substring(1);
        // make sure applications is compiled in order to startup and extract meta information
        String processResourcesName = "process" + runtimeConfigurationFirstUpper + "Resources";
        String compileJavaName = "compile" + runtimeConfigurationFirstUpper + "Java";
        TaskContainer tasks = project.getTasks();
        Task processResourceTask = tasks.findByName(processResourcesName);
        Task compileJavaTask = tasks.findByName(compileJavaName);
        if (processResourceTask != null) {
            generateTask.dependsOn(processResourceTask);
        }
        if (compileJavaTask != null) {
            generateTask.dependsOn(compileJavaTask, compileJavaTask);
        }
        // setup up-to-date checking
        Configuration compileConfiguration = project.getConfigurations().findByName(runtimeConfiguration);
        if (compileConfiguration != null) {
            generateTask.getInputs().files(compileConfiguration.getFiles());
            generateTask.getOutputs().dir(config.getGenDir());
        }
    }
}
Also used : Task(org.gradle.api.Task) NpmInstallTask(com.moowork.gradle.node.npm.NpmInstallTask) TaskContainer(org.gradle.api.tasks.TaskContainer) Configuration(org.gradle.api.artifacts.Configuration)

Example 52 with Task

use of org.gradle.api.Task in project crnk-framework by crnk-project.

the class TSGeneratorPlugin method setupPackageTasks.

void setupPackageTasks(Project project, Task generateTask) {
    final File buildDir = new File(project.getBuildDir(), "npm_compile");
    final File distDir = getNpmOutputDir(project);
    project.getTasks().create(PublishTypescriptStubsTask.NAME, PublishTypescriptStubsTask.class);
    TSGeneratorConfig config = project.getExtensions().getByType(TSGeneratorConfig.class);
    Copy copySources = project.getTasks().create("processTypescript", Copy.class);
    copySources.from(config.getGenDir());
    copySources.into(buildDir);
    copySources.dependsOn(generateTask);
    // copy .npmrc file from root to working directory if available
    final File npmrcFile = new File(project.getProjectDir(), ".npmrc");
    if (npmrcFile.exists()) {
        copySources.getInputs().file(npmrcFile);
        copySources.doFirst(new Action<Task>() {

            @Override
            public void execute(Task task) {
                File targetFile = new File(buildDir, ".npmrc");
                buildDir.mkdirs();
                TypescriptUtils.copyFile(npmrcFile, targetFile);
            }
        });
    }
    CompileTypescriptStubsTask compileTypescriptTask = project.getTasks().create(CompileTypescriptStubsTask.NAME, CompileTypescriptStubsTask.class);
    try {
        NpmInstallTask npmInstall = (NpmInstallTask) project.getTasks().getByName("npmInstall");
        npmInstall.setWorkingDir(buildDir);
        npmInstall.dependsOn(copySources);
        npmInstall.getInputs().files(new File(buildDir, "package.json"));
        npmInstall.getOutputs().dir(new File(buildDir, "node_modules"));
        compileTypescriptTask.dependsOn(npmInstall);
    } catch (UnknownTaskException e) {
        LOGGER.warn("task not found, ok in testing", e);
    }
    ConfigurableFileTree fileTree = project.fileTree(buildDir);
    fileTree.include("package.json");
    fileTree.include(".npmrc");
    fileTree.include("**/*.ts");
    fileTree.exclude("**/*.d.ts");
    compileTypescriptTask.getInputs().files(fileTree);
    compileTypescriptTask.setWorkingDir(buildDir);
    compileTypescriptTask.getOutputs().dir(buildDir);
    ConfigurableFileTree assembleFileTree = project.fileTree(new File(buildDir, "src"));
    assembleFileTree.include("**/*.ts");
    assembleFileTree.include("**/*.js");
    assembleFileTree.include("**/*.js.map");
    Copy assembleSources = project.getTasks().create("assembleTypescript", Copy.class);
    assembleSources.from(assembleFileTree);
    assembleSources.from(new File(buildDir, "package.json"));
    assembleSources.into(distDir);
    assembleSources.dependsOn(compileTypescriptTask);
}
Also used : UnknownTaskException(org.gradle.api.UnknownTaskException) Task(org.gradle.api.Task) NpmInstallTask(com.moowork.gradle.node.npm.NpmInstallTask) NpmInstallTask(com.moowork.gradle.node.npm.NpmInstallTask) Copy(org.gradle.api.tasks.Copy) ConfigurableFileTree(org.gradle.api.file.ConfigurableFileTree) File(java.io.File)

Example 53 with Task

use of org.gradle.api.Task in project openfasttrace-gradle by itsallcode.

the class OpenFastTracePlugin method createTask.

private <T extends DefaultTask> T createTask(Project project, String taskName, Class<T> taskType) {
    final Map<String, Class<T>> taskConfig = singletonMap("type", taskType);
    final Task task = project.task(taskConfig, taskName);
    return taskType.cast(task);
}
Also used : TraceTask(org.itsallcode.openfasttrace.gradle.task.TraceTask) Task(org.gradle.api.Task) DefaultTask(org.gradle.api.DefaultTask)

Example 54 with Task

use of org.gradle.api.Task in project build-info by JFrogDev.

the class GradleBuildInfoExtractor method getBuildInfoTask.

private ArtifactoryTask getBuildInfoTask(Project project) {
    Set<Task> tasks = project.getTasksByName(ArtifactoryTask.ARTIFACTORY_PUBLISH_TASK_NAME, false);
    if (tasks.isEmpty()) {
        return null;
    }
    ArtifactoryTask artifactoryTask = (ArtifactoryTask) tasks.iterator().next();
    if (taskDidWork(artifactoryTask)) {
        return artifactoryTask;
    }
    return null;
}
Also used : ArtifactoryTask(org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask) Task(org.gradle.api.Task) ArtifactoryTask(org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask)

Example 55 with Task

use of org.gradle.api.Task in project build-info by JFrogDev.

the class ArtifactoryTask method projectEvaluated.

public void projectEvaluated() {
    Project project = getProject();
    if (isSkip()) {
        log.debug("artifactoryPublish task '{}' skipped for project '{}'.", this.getPath(), project.getName());
    } else {
        ArtifactoryPluginConvention convention = ArtifactoryPluginUtil.getPublisherConvention(project);
        if (convention != null) {
            ArtifactoryClientConfiguration acc = convention.getClientConfig();
            artifactSpecs.clear();
            artifactSpecs.addAll(acc.publisher.getArtifactSpecs());
            // Configure the task using the "defaults" closure (delegate to the task)
            PublisherConfig config = convention.getPublisherConfig();
            if (config != null) {
                Closure defaultsClosure = config.getDefaultsClosure();
                ConfigureUtil.configure(defaultsClosure, this);
            }
        }
        Task deployTask = project.getRootProject().getTasks().findByName(DEPLOY_TASK_NAME);
        if (deployTask == null) {
            throw new IllegalStateException(String.format("Could not find %s in the root project", DEPLOY_TASK_NAME));
        }
        finalizedBy(deployTask);
        // Depend on buildInfo task in sub-projects
        for (Project sub : project.getSubprojects()) {
            Task subArtifactoryTask = sub.getTasks().findByName(ARTIFACTORY_PUBLISH_TASK_NAME);
            if (subArtifactoryTask != null) {
                dependsOn(subArtifactoryTask);
            }
        }
        checkDependsOnArtifactsToPublish();
    }
}
Also used : ArtifactoryClientConfiguration(org.jfrog.build.extractor.clientConfiguration.ArtifactoryClientConfiguration) Project(org.gradle.api.Project) Task(org.gradle.api.Task) DefaultTask(org.gradle.api.DefaultTask) Closure(groovy.lang.Closure) ArtifactoryPluginConvention(org.jfrog.gradle.plugin.artifactory.dsl.ArtifactoryPluginConvention) PublisherConfig(org.jfrog.gradle.plugin.artifactory.dsl.PublisherConfig)

Aggregations

Task (org.gradle.api.Task)222 Project (org.gradle.api.Project)66 File (java.io.File)54 Action (org.gradle.api.Action)31 ArrayList (java.util.ArrayList)27 Plugin (org.gradle.api.Plugin)27 Configuration (org.gradle.api.artifacts.Configuration)27 Test (org.junit.Test)23 List (java.util.List)22 TaskProvider (org.gradle.api.tasks.TaskProvider)22 DefaultTask (org.gradle.api.DefaultTask)21 IOException (java.io.IOException)20 Set (java.util.Set)18 SourceSet (org.gradle.api.tasks.SourceSet)18 Map (java.util.Map)17 GradleException (org.gradle.api.GradleException)17 FileCollection (org.gradle.api.file.FileCollection)16 Inject (javax.inject.Inject)15 JavaPlugin (org.gradle.api.plugins.JavaPlugin)15 LifecycleBasePlugin (org.gradle.language.base.plugins.LifecycleBasePlugin)15