use of org.apache.maven.shared.invoker.InvocationRequest 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.InvocationRequest 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.InvocationRequest 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.InvocationRequest in project unleash-maven-plugin by shillner.
the class BuildProject method setupInvocationRequest.
private InvocationRequest setupInvocationRequest() throws MojoExecutionException {
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile(this.project.getFile());
// installation and deployment are performed in a later step. We first need to ensure that there are no changes in
// the scm, ...
request.setGoals(this.goals);
request.setProperties(this.releaseArgs);
request.setProfiles(this.profiles);
request.setShellEnvironmentInherited(true);
for (String key : this.releaseEnvironmentVariables.keySet()) {
request.addShellEnvironment(key, this.releaseEnvironmentVariables.get(key));
}
request.addShellEnvironment("isUnleashBuild", "true");
request.setOffline(this.settings.isOffline());
request.setInteractive(this.settings.isInteractiveMode());
MavenExecutionRequest originalRequest = this.session.getRequest();
File globalSettingsFile = originalRequest.getGlobalSettingsFile();
if (globalSettingsFile != null && globalSettingsFile.exists() && globalSettingsFile.isFile()) {
request.setGlobalSettingsFile(globalSettingsFile);
}
File userSettingsFile = originalRequest.getUserSettingsFile();
if (userSettingsFile != null && userSettingsFile.exists() && userSettingsFile.isFile()) {
request.setUserSettingsFile(userSettingsFile);
}
File toolchainsFile = originalRequest.getUserToolchainsFile();
if (toolchainsFile.exists() && toolchainsFile.isFile()) {
request.setToolchainsFile(toolchainsFile);
}
return request;
}
use of org.apache.maven.shared.invoker.InvocationRequest in project edx-app-android by edx.
the class MavenRun method main.
public static void main(String[] args) throws IOException {
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile(new File("pom.xml"));
if (args.length > 0) {
if (args[0] != null && args[1] != null) {
Properties projectProperties = new Properties();
projectProperties.setProperty("deviceOS", args[0]);
projectProperties.setProperty("appPath", args[1]);
projectProperties.setProperty("osVersion", args[2]);
projectProperties.setProperty("deviceName", args[3]);
projectProperties.setProperty("udid", args[4]);
request.setProperties(projectProperties);
}
}
request.setGoals(Collections.singletonList("test"));
Invoker invoker = new DefaultInvoker();
invoker.setMavenHome(new File(System.getenv("M2_HOME")));
try {
invoker.execute(request);
} catch (MavenInvocationException e) {
e.printStackTrace();
}
}
Aggregations