Search in sources :

Example 1 with Copy

use of org.gradle.api.tasks.Copy 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 2 with Copy

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

the class GenerateTypescriptTaskTest method test.

private void test(boolean expressions) throws IOException {
    // Deltaspike sometimes really wants to have a retarded JNDI context
    System.setProperty(Context.INITIAL_CONTEXT_FACTORY, DummyInitialContextFactory.class.getName());
    testProjectDir.newFolder("src", "main", "java");
    outputDir = testProjectDir.getRoot();
    outputDir = new File("build/tmp/gen");
    outputDir.mkdirs();
    File npmrcFile = new File(outputDir, ".npmrc");
    FileWriter npmrcWriter = new FileWriter(npmrcFile);
    npmrcWriter.write("");
    npmrcWriter.close();
    Project project = ProjectBuilder.builder().withName("crnk-gen-typescript-test").withProjectDir(outputDir).build();
    project.setVersion("0.0.1");
    project.getPluginManager().apply("com.moowork.node");
    project.getPluginManager().apply(JavaPlugin.class);
    project.getPluginManager().apply(TSGeneratorPlugin.class);
    TSGeneratorExtension config = project.getExtensions().getByType(TSGeneratorExtension.class);
    config.setForked(false);
    config.setGenerateExpressions(expressions);
    String testPackage = "@crnk/gen-typescript-test";
    config.getRuntime().setConfiguration("test");
    config.getNpm().setPackageName(testPackage);
    config.getNpm().setGitRepository("someThing");
    config.getNpm().getPackageMapping().put("io.crnk.test.mock.models", testPackage);
    config.getNpm().getPackageMapping().put("io.crnk.meta", testPackage);
    config.getNpm().setPackageVersion("0.0.1");
    TSGeneratorPlugin plugin = project.getPlugins().getPlugin(TSGeneratorPlugin.class);
    plugin.init(project);
    GenerateTypescriptTask task = (GenerateTypescriptTask) project.getTasks().getByName("generateTypescript");
    task.runGeneration(Thread.currentThread().getContextClassLoader());
    Copy processTask = (Copy) project.getTasks().getByName("processTypescript");
    processTask.execute();
    assertExists("build/generated/source/typescript/package.json");
    assertExists("build/generated/source/typescript/src/index.ts");
    assertExists("build/generated/source/typescript/src/projects.ts");
    assertExists("build/generated/source/typescript/src/types/project.data.ts");
    assertExists("build/generated/source/typescript/src/schedules.ts");
    assertExists("build/generated/source/typescript/src/tasks.ts");
    assertNotExists("build/generated/source/typescript/src/tasks.links.ts");
    assertNotExists("build/generated/source/typescript/src/tasks.meta.ts");
    assertExists("build/generated/source/typescript/src/meta/meta.key.ts");
    assertExists("build/generated/source/typescript/src/meta/meta.element.ts");
    assertExists("build/generated/source/typescript/src/meta/meta.data.object.ts");
    // check whether source copied to compile directory for proper source bundling
    assertExists("build/npm_compile/.npmrc");
    assertExists("build/npm_compile/package.json");
    assertExists("build/npm_compile/src/index.ts");
    assertExists("build/npm_compile/src/meta/meta.element.ts");
    checkSchedule(expressions);
    checkProject();
}
Also used : Project(org.gradle.api.Project) Copy(org.gradle.api.tasks.Copy) FileWriter(java.io.FileWriter) DummyInitialContextFactory(io.crnk.gen.typescript.runtime.DummyInitialContextFactory) File(java.io.File)

Example 3 with Copy

use of org.gradle.api.tasks.Copy in project spring-boot by spring-projects.

the class MavenPluginPlugin method createCopyPluginDescriptorInputs.

private Copy createCopyPluginDescriptorInputs(Project project, File destination, SourceSet sourceSet) {
    Copy pluginDescriptorInputs = project.getTasks().create("copyPluginDescriptorInputs", Copy.class);
    pluginDescriptorInputs.setDestinationDir(destination);
    File pomFile = new File(project.getProjectDir(), "src/maven/resources/pom.xml");
    pluginDescriptorInputs.from(pomFile, (copy) -> replaceVersionPlaceholder(copy, project));
    pluginDescriptorInputs.from(sourceSet.getOutput().getClassesDirs(), (sync) -> sync.into("target/classes"));
    pluginDescriptorInputs.from(sourceSet.getAllJava().getSrcDirs(), (sync) -> sync.into("src/main/java"));
    pluginDescriptorInputs.getInputs().property("version", project.getVersion());
    return pluginDescriptorInputs;
}
Also used : Copy(org.gradle.api.tasks.Copy) OutputFile(org.gradle.api.tasks.OutputFile) File(java.io.File)

Example 4 with Copy

use of org.gradle.api.tasks.Copy in project spring-boot by spring-projects.

the class MavenPluginPlugin method addGeneratePluginDescriptorTask.

private MavenExec addGeneratePluginDescriptorTask(Project project, Jar jarTask, MavenExec generateHelpMojoTask) {
    File pluginDescriptorDir = new File(project.getBuildDir(), "plugin-descriptor");
    File generatedHelpMojoDir = new File(project.getBuildDir(), "generated/sources/helpMojo");
    SourceSet mainSourceSet = getMainSourceSet(project);
    project.getTasks().withType(Javadoc.class, this::setJavadocOptions);
    FormatHelpMojoSourceTask copyFormattedHelpMojoSourceTask = createCopyFormattedHelpMojoSourceTask(project, generateHelpMojoTask, generatedHelpMojoDir);
    project.getTasks().getByName(mainSourceSet.getCompileJavaTaskName()).dependsOn(copyFormattedHelpMojoSourceTask);
    mainSourceSet.java((javaSources) -> javaSources.srcDir(copyFormattedHelpMojoSourceTask));
    Copy pluginDescriptorInputs = createCopyPluginDescriptorInputs(project, pluginDescriptorDir, mainSourceSet);
    pluginDescriptorInputs.dependsOn(mainSourceSet.getClassesTaskName());
    MavenExec task = createGeneratePluginDescriptorTask(project, pluginDescriptorDir);
    task.dependsOn(pluginDescriptorInputs);
    includeDescriptorInJar(jarTask, task);
    return task;
}
Also used : SourceSet(org.gradle.api.tasks.SourceSet) Copy(org.gradle.api.tasks.Copy) OutputFile(org.gradle.api.tasks.OutputFile) File(java.io.File)

Example 5 with Copy

use of org.gradle.api.tasks.Copy in project spring-boot by spring-projects.

the class MavenPluginPlugin method createCopyHelpMojoInputsTask.

private Copy createCopyHelpMojoInputsTask(Project project, File helpMojoDir) {
    Copy task = project.getTasks().create("copyHelpMojoInputs", Copy.class);
    task.setDestinationDir(helpMojoDir);
    File pomFile = new File(project.getProjectDir(), "src/maven/resources/pom.xml");
    task.from(pomFile, (copy) -> replaceVersionPlaceholder(copy, project));
    return task;
}
Also used : Copy(org.gradle.api.tasks.Copy) OutputFile(org.gradle.api.tasks.OutputFile) File(java.io.File)

Aggregations

Copy (org.gradle.api.tasks.Copy)11 File (java.io.File)9 Project (org.gradle.api.Project)5 OutputFile (org.gradle.api.tasks.OutputFile)3 IdlOptions (com.linkedin.pegasus.gradle.PegasusOptions.IdlOptions)2 CompatibilityLogChecker (com.linkedin.pegasus.gradle.internal.CompatibilityLogChecker)2 ChangedFileReportTask (com.linkedin.pegasus.gradle.tasks.ChangedFileReportTask)2 CheckIdlTask (com.linkedin.pegasus.gradle.tasks.CheckIdlTask)2 CheckPegasusSnapshotTask (com.linkedin.pegasus.gradle.tasks.CheckPegasusSnapshotTask)2 CheckRestModelTask (com.linkedin.pegasus.gradle.tasks.CheckRestModelTask)2 CheckSnapshotTask (com.linkedin.pegasus.gradle.tasks.CheckSnapshotTask)2 GenerateAvroSchemaTask (com.linkedin.pegasus.gradle.tasks.GenerateAvroSchemaTask)2 GenerateDataTemplateTask (com.linkedin.pegasus.gradle.tasks.GenerateDataTemplateTask)2 GeneratePegasusSnapshotTask (com.linkedin.pegasus.gradle.tasks.GeneratePegasusSnapshotTask)2 GenerateRestClientTask (com.linkedin.pegasus.gradle.tasks.GenerateRestClientTask)2 GenerateRestModelTask (com.linkedin.pegasus.gradle.tasks.GenerateRestModelTask)2 PublishRestModelTask (com.linkedin.pegasus.gradle.tasks.PublishRestModelTask)2 TranslateSchemasTask (com.linkedin.pegasus.gradle.tasks.TranslateSchemasTask)2 ValidateExtensionSchemaTask (com.linkedin.pegasus.gradle.tasks.ValidateExtensionSchemaTask)2 ValidateSchemaAnnotationTask (com.linkedin.pegasus.gradle.tasks.ValidateSchemaAnnotationTask)2