public NpmRunTask() { exclude(_EXCLUDE_DIR_NAMES); include(_INCLUDES); Project project = getProject(); setSourceDir(project.getProjectDir()); }
@Override public void execute(Task task) { NpmRunTask npmRunTask = (NpmRunTask)task; String result = npmRunTask.getResult(); if (result.contains("errors during Soy compilation")) { project.delete(npmRunTask.getSourceDigestFile()); throw new GradleException("Soy compile error"); } }
@Override protected List<String> getCompleteArgs() { List<String> completeArgs = super.getCompleteArgs(); completeArgs.add(getNpmCommand()); completeArgs.add(getScriptName()); return completeArgs; }
@OutputFile public File getSourceDigestFile() { Project project = getProject(); String pathname = "npm/script/" + getName() + "/.digest"; return new File(project.getBuildDir(), pathname); }
project, taskName, NpmRunTask.class); npmRunTask.dependsOn(npmInstallTask); npmRunTask.setDescription("Runs the \"" + name + "\" NPM script."); npmRunTask.setGroup(BasePlugin.BUILD_GROUP); npmRunTask.setScriptName(name); npmRunTask.doLast( new Action<Task>() {
private void _configureTaskNpmRun( NpmRunTask npmRunTask, NodeExtension nodeExtension) { npmRunTask.setNodeVersion(nodeExtension.getNodeVersion()); npmRunTask.setNpmVersion(nodeExtension.getNpmVersion()); Project project = npmRunTask.getProject(); PluginContainer pluginContainer = project.getPlugins(); if (pluginContainer.hasPlugin(JavaPlugin.class)) { SourceSet sourceSet = GradleUtil.getSourceSet( npmRunTask.getProject(), SourceSet.MAIN_SOURCE_SET_NAME); SourceSetOutput sourceSetOutput = sourceSet.getOutput(); File classesDir = sourceSetOutput.getClassesDir(); if (!classesDir.exists()) { TaskOutputs taskOutputs = npmRunTask.getOutputs(); taskOutputs.upToDateWhen( new Spec<Task>() { @Override public boolean isSatisfiedBy(Task task) { return false; } }); } } }
private void _configureTaskNpmRunBuildForJavaPlugin(NpmRunTask npmRunTask) { npmRunTask.mustRunAfter(JavaPlugin.PROCESS_RESOURCES_TASK_NAME); npmRunTask.getProject(), JavaPlugin.CLASSES_TASK_NAME); final File sourceDigestFile = npmRunTask.getSourceDigestFile(); if (!_isStale(sourceDigestFile, npmRunTask.getSourceFiles())) { Project project = npmRunTask.getProject();
@Override public void executeNode() throws Exception { String digest = FileUtil.getDigest(getSourceFiles()); super.executeNode(); _writeSourceDigestFile(digest.getBytes(StandardCharsets.UTF_8)); }
@InputFiles @Optional public FileCollection getSourceFiles() { File sourceDir = getSourceDir(); if ((sourceDir == null) || !sourceDir.exists()) { return null; } Project project = getProject(); FileTree fileTree = project.fileTree(sourceDir); FileCollection fileCollection = fileTree.matching(_patternFilterable); if (fileCollection.isEmpty()) { return null; } return fileCollection; }
private void _writeSourceDigestFile(byte[] bytes) throws Exception { File file = getSourceDigestFile(); File dir = file.getParentFile(); if (dir != null) { Files.createDirectories(dir.toPath()); } Files.write(file.toPath(), bytes); }
@Override protected List<String> getCompleteArgs() { List<String> completeArgs = super.getCompleteArgs(); completeArgs.add("run-script"); completeArgs.add(getScriptName()); return completeArgs; }
@Input @Optional public File getSourceDir() { return GradleUtil.toFile(getProject(), _sourceDir); }
project, taskName, NpmRunTask.class); npmRunTask.dependsOn(npmInstallTask); npmRunTask.setDescription( "Runs the \"" + scriptName + "\" NPM script."); npmRunTask.setGroup(BasePlugin.BUILD_GROUP); npmRunTask.setScriptName(scriptName); npmRunTask.doLast( new Action<Task>() {
private void _configureTaskNpmRun( NpmRunTask npmRunTask, NodeExtension nodeExtension) { npmRunTask.setNodeVersion(nodeExtension.getNodeVersion()); npmRunTask.setNpmVersion(nodeExtension.getNpmVersion()); Project project = npmRunTask.getProject(); PluginContainer pluginContainer = project.getPlugins(); if (pluginContainer.hasPlugin(JavaPlugin.class)) { SourceSet sourceSet = GradleUtil.getSourceSet( npmRunTask.getProject(), SourceSet.MAIN_SOURCE_SET_NAME); SourceSetOutput sourceSetOutput = sourceSet.getOutput(); File classesDir = sourceSetOutput.getClassesDir(); if (!classesDir.exists()) { TaskOutputs taskOutputs = npmRunTask.getOutputs(); taskOutputs.upToDateWhen( new Spec<Task>() { @Override public boolean isSatisfiedBy(Task task) { return false; } }); } } }
private void _configureTaskNpmRunBuildForJavaPlugin(NpmRunTask npmRunTask) { npmRunTask.mustRunAfter(JavaPlugin.PROCESS_RESOURCES_TASK_NAME); npmRunTask.getProject(), JavaPlugin.CLASSES_TASK_NAME); final File sourceDigestFile = npmRunTask.getSourceDigestFile(); if (!_isStale(sourceDigestFile, npmRunTask.getSourceFiles())) { Project project = npmRunTask.getProject();
public NpmRunTask() { exclude(_EXCLUDE_DIR_NAMES); include(_INCLUDES); Project project = getProject(); setSourceDir(project.getProjectDir()); }
@Override public void execute(Task task) { NpmRunTask npmRunTask = (NpmRunTask)task; String result = npmRunTask.getResult(); if (result.contains("errors during Soy compilation")) { project.delete(npmRunTask.getSourceDigestFile()); throw new GradleException("Soy compile error"); } }