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);
}
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();
}
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;
}
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;
}
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;
}
Aggregations