use of org.apache.maven.shared.invoker.InvocationResult in project spring-boot by spring-projects.
the class ApplicationBuilder method packageApplication.
private void packageApplication(File appFolder) throws MavenInvocationException {
InvocationRequest invocation = new DefaultInvocationRequest();
invocation.setBaseDirectory(appFolder);
invocation.setGoals(Collections.singletonList("package"));
InvocationResult execute = new DefaultInvoker().execute(invocation);
assertThat(execute.getExitCode()).isEqualTo(0);
}
use of org.apache.maven.shared.invoker.InvocationResult in project fabric8 by jboss-fuse.
the class CreateProfileZipMojo method generateAggregatedZip.
protected void generateAggregatedZip(MavenProject rootProject, List<MavenProject> reactorProjects, List<MavenProject> pomZipProjects) throws IOException, MojoExecutionException {
File projectBaseDir = rootProject.getBasedir();
String rootProjectGroupId = rootProject.getGroupId();
String rootProjectArtifactId = rootProject.getArtifactId();
String rootProjectVersion = rootProject.getVersion();
File projectOutputFile = new File(projectBaseDir, "target/profile.zip");
getLog().info("Generating " + projectOutputFile.getAbsolutePath() + " from root project " + rootProject.getArtifactId());
File projectBuildDir = new File(projectBaseDir, reactorProjectOutputPath);
createAggregatedZip(reactorProjects, projectBaseDir, projectBuildDir, reactorProjectOutputPath, projectOutputFile, includeReadMe, pomZipProjects);
if (rootProject.getAttachedArtifacts() != null) {
// need to remove existing as otherwise we get a WARN
Artifact found = null;
for (Artifact artifact : rootProject.getAttachedArtifacts()) {
if (artifactClassifier != null && artifact.hasClassifier() && artifact.getClassifier().equals(artifactClassifier)) {
found = artifact;
break;
}
}
if (found != null) {
rootProject.getAttachedArtifacts().remove(found);
}
}
getLog().info("Attaching aggregated zip " + projectOutputFile + " to root project " + rootProject.getArtifactId());
projectHelper.attachArtifact(rootProject, artifactType, artifactClassifier, projectOutputFile);
List<String> activeProfileIds = new ArrayList<>();
List<org.apache.maven.model.Profile> activeProfiles = rootProject.getActiveProfiles();
if (activeProfiles != null) {
for (org.apache.maven.model.Profile profile : activeProfiles) {
String id = profile.getId();
if (Strings.isNotBlank(id)) {
activeProfileIds.add(id);
}
}
}
// so we need to install manually
if (rootProject.hasLifecyclePhase("install")) {
getLog().info("Installing aggregated zip " + projectOutputFile);
InvocationRequest request = new DefaultInvocationRequest();
request.setBaseDirectory(rootProject.getBasedir());
request.setPomFile(new File("./pom.xml"));
request.setGoals(Collections.singletonList("install:install-file"));
request.setRecursive(false);
request.setInteractive(false);
Properties props = new Properties();
props.setProperty("file", "target/profile.zip");
props.setProperty("groupId", rootProjectGroupId);
props.setProperty("artifactId", rootProjectArtifactId);
props.setProperty("version", rootProjectVersion);
props.setProperty("classifier", "profile");
props.setProperty("packaging", "zip");
request.setProperties(props);
getLog().info("Installing aggregated zip using: mvn install:install-file" + serializeMvnProperties(props));
Invoker invoker = new DefaultInvoker();
try {
InvocationResult result = invoker.execute(request);
if (result.getExitCode() != 0) {
throw new IllegalStateException("Error invoking Maven goal install:install-file");
}
} catch (MavenInvocationException e) {
throw new MojoExecutionException("Error invoking Maven goal install:install-file", e);
}
}
if (rootProject.hasLifecyclePhase("deploy")) {
getLog().info("Deploying aggregated zip " + projectOutputFile + " to root project " + rootProject.getArtifactId());
InvocationRequest request = new DefaultInvocationRequest();
request.setBaseDirectory(rootProject.getBasedir());
request.setPomFile(new File("./pom.xml"));
request.setGoals(Collections.singletonList(deployFileGoal));
request.setRecursive(false);
request.setInteractive(false);
request.setProfiles(activeProfileIds);
request.setShellEnvironmentInherited(true);
request.setLocalRepositoryDirectory(session.getRequest().getLocalRepositoryPath());
request.setUserSettingsFile(session.getRequest().getUserSettingsFile());
getLog().info("Using deploy goal: " + deployFileGoal + " with active profiles: " + activeProfileIds + " and local repo " + session.getRequest().getLocalRepositoryPath() + " and user settings " + session.getRequest().getUserSettingsFile());
Properties props = new Properties();
props.setProperty("file", "target/profile.zip");
props.setProperty("groupId", rootProjectGroupId);
props.setProperty("artifactId", rootProjectArtifactId);
props.setProperty("version", rootProjectVersion);
props.setProperty("classifier", "profile");
props.setProperty("packaging", "zip");
if (altDeploymentRepository == null || altDeploymentRepository.length() <= 0) {
props.setProperty("url", deploymentRepository.getUrl());
props.setProperty("repositoryId", deploymentRepository.getId());
} else {
Matcher matcher = ALT_REPO_SYNTAX_PATTERN.matcher(altDeploymentRepository);
if (!matcher.matches()) {
throw new MojoExecutionException("Invalid syntax for altDeploymentRepository");
} else {
String id = matcher.group(1).trim();
String url = matcher.group(3).trim();
props.setProperty("url", url);
props.setProperty("repositoryId", id);
}
}
props.setProperty("generatePom", "false");
request.setProperties(props);
getLog().info("Deploying aggregated zip using: mvn deploy:deploy-file" + serializeMvnProperties(props));
Invoker invoker = new DefaultInvoker();
try {
InvocationResult result = invoker.execute(request);
if (result.getExitCode() != 0) {
throw new IllegalStateException("Error invoking Maven goal deploy:deploy-file");
}
} catch (MavenInvocationException e) {
throw new MojoExecutionException("Error invoking Maven goal deploy:deploy-file", e);
}
}
}
use of org.apache.maven.shared.invoker.InvocationResult in project syncope by apache.
the class MavenUtils method invoke.
private InvocationResult invoke(final InvocationRequest request, final String path) {
InvocationResult result = null;
final Invoker invoker = new DefaultInvoker();
try {
invoker.setLogger(new PrintStreamLogger(new PrintStream(InstallLog.getInstance().getFileAbsolutePath()), 1000));
invoker.setOutputHandler(new PrintStreamHandler(new PrintStream(InstallLog.getInstance().getFileAbsolutePath()), true));
invoker.setWorkingDirectory(new File(path));
result = invoker.execute(request);
} catch (MavenInvocationException | FileNotFoundException ex) {
final String messageError = "Maven exception: " + ex.getMessage();
handler.emitError(messageError, messageError);
InstallLog.getInstance().info(messageError);
}
return result;
}
use of org.apache.maven.shared.invoker.InvocationResult in project unleash-maven-plugin by shillner.
the class BuildProject method execute.
@Override
public void execute(ExecutionContext context) throws MojoExecutionException, MojoFailureException {
this.log.info("Starting release build.");
try {
InvocationRequest request = setupInvocationRequest();
Invoker invoker = setupInvoker();
InvocationResult result = invoker.execute(request);
if (result.getExitCode() != 0) {
CommandLineException executionException = result.getExecutionException();
if (executionException != null) {
throw new MojoFailureException("Error during project build: " + executionException.getMessage(), executionException);
} else {
throw new MojoFailureException("Error during project build: " + result.getExitCode());
}
}
} catch (MavenInvocationException e) {
throw new MojoFailureException(e.getMessage(), e);
}
}
use of org.apache.maven.shared.invoker.InvocationResult in project mule by mulesoft.
the class MavenTestUtils method runMavenGoal.
private static void runMavenGoal(List<String> goals, String baseDirectory) {
Invoker invoker = new DefaultInvoker();
invoker.setLocalRepositoryDirectory(getMavenLocalRepository());
invoker.setLogger(LOGGER);
LOGGER.setThreshold(3);
InvocationRequest request = new DefaultInvocationRequest();
request.setGoals(goals);
request.setBatchMode(true);
File mavenArtifactsAndBaseDirectory = new File(new File(MAVEN_ARTIFACTS_DIRECTORY), baseDirectory);
LOGGER.info("Using Maven artifacts base directory: '" + mavenArtifactsAndBaseDirectory.getAbsolutePath() + "'...");
request.setBaseDirectory(mavenArtifactsAndBaseDirectory);
request.setPomFile(new File(mavenArtifactsAndBaseDirectory, "pom.xml"));
request.setShowErrors(true);
request.setUserSettingsFile(MAVEN_SETTINGS);
try {
InvocationResult result = invoker.execute(request);
if (result.getExitCode() != 0) {
LOGGER.error(result.getExecutionException().getMessage());
}
} catch (MavenInvocationException e) {
throw new RuntimeException("Error running Maven project: " + e.getMessage());
}
}
Aggregations