com.github.albanseurat.springboot.plugin.executors.NpmExecutor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-boot-frontend-maven-plugin Show documentation
Show all versions of spring-boot-frontend-maven-plugin Show documentation
Allow to create a front-end project with AngularJS / bootstrap and grunt for proper build
The newest version!
package com.github.albanseurat.springboot.plugin.executors;
import static java.lang.String.format;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;
public class NpmExecutor implements TaskExecutor {
private ProcessBuilder processBuilder;
private Logger logger = LoggerFactory.getLogger(getClass());
public NpmExecutor(File workingDirectory) {
processBuilder = new ProcessBuilder().directory(workingDirectory);
}
public void installDependency(String artefact, String version) throws MojoExecutionException, MojoFailureException {
logger.debug("installDependency {}#{}", artefact, version);
this.executeWithBuilder(
processBuilder.command(format("npm install %s@%s", artefact, version).split(" ")),
logger);
}
public boolean checkDependency(File artefact, String version) throws MojoExecutionException, MojoFailureException {
logger.debug("checkDependency {}", artefact);
try {
JsonReader jsonReader = Json.createReader(new FileInputStream(new File(artefact, "package.json")));
JsonObject jsonObject = jsonReader.readObject();
return jsonObject.getString("version").contains(version);
} catch (FileNotFoundException e) {
throw new MojoFailureException(e.getMessage());
}
}
}