Search in sources :

Example 1 with InvocationRequest

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);
}
Also used : DefaultInvocationRequest(org.apache.maven.shared.invoker.DefaultInvocationRequest) InvocationRequest(org.apache.maven.shared.invoker.InvocationRequest) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) DefaultInvocationRequest(org.apache.maven.shared.invoker.DefaultInvocationRequest) InvocationResult(org.apache.maven.shared.invoker.InvocationResult)

Example 2 with InvocationRequest

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);
        }
    }
}
Also used : DefaultInvocationRequest(org.apache.maven.shared.invoker.DefaultInvocationRequest) InvocationRequest(org.apache.maven.shared.invoker.InvocationRequest) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) Matcher(java.util.regex.Matcher) MavenInvocationException(org.apache.maven.shared.invoker.MavenInvocationException) ArrayList(java.util.ArrayList) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) Properties(java.util.Properties) InvocationResult(org.apache.maven.shared.invoker.InvocationResult) Artifact(org.apache.maven.artifact.Artifact) Invoker(org.apache.maven.shared.invoker.Invoker) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) DefaultInvocationRequest(org.apache.maven.shared.invoker.DefaultInvocationRequest) File(java.io.File)

Example 3 with InvocationRequest

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);
    }
}
Also used : DefaultInvocationRequest(org.apache.maven.shared.invoker.DefaultInvocationRequest) InvocationRequest(org.apache.maven.shared.invoker.InvocationRequest) Invoker(org.apache.maven.shared.invoker.Invoker) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) MavenInvocationException(org.apache.maven.shared.invoker.MavenInvocationException) MojoFailureException(org.apache.maven.plugin.MojoFailureException) InvocationResult(org.apache.maven.shared.invoker.InvocationResult) CommandLineException(org.codehaus.plexus.util.cli.CommandLineException)

Example 4 with InvocationRequest

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;
}
Also used : DefaultInvocationRequest(org.apache.maven.shared.invoker.DefaultInvocationRequest) InvocationRequest(org.apache.maven.shared.invoker.InvocationRequest) MavenExecutionRequest(org.apache.maven.execution.MavenExecutionRequest) DefaultInvocationRequest(org.apache.maven.shared.invoker.DefaultInvocationRequest) File(java.io.File)

Example 5 with InvocationRequest

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();
    }
}
Also used : DefaultInvocationRequest(org.apache.maven.shared.invoker.DefaultInvocationRequest) InvocationRequest(org.apache.maven.shared.invoker.InvocationRequest) Invoker(org.apache.maven.shared.invoker.Invoker) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) MavenInvocationException(org.apache.maven.shared.invoker.MavenInvocationException) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) DefaultInvocationRequest(org.apache.maven.shared.invoker.DefaultInvocationRequest) Properties(java.util.Properties) File(java.io.File)

Aggregations

DefaultInvocationRequest (org.apache.maven.shared.invoker.DefaultInvocationRequest)29 InvocationRequest (org.apache.maven.shared.invoker.InvocationRequest)29 File (java.io.File)17 InvocationResult (org.apache.maven.shared.invoker.InvocationResult)15 MavenInvocationException (org.apache.maven.shared.invoker.MavenInvocationException)15 Properties (java.util.Properties)14 DefaultInvoker (org.apache.maven.shared.invoker.DefaultInvoker)12 Invoker (org.apache.maven.shared.invoker.Invoker)11 InvokerProperties (org.apache.maven.plugins.invoker.InvokerProperties)7 IOException (java.io.IOException)5 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)3 ArrayList (java.util.ArrayList)2 LinkedHashMap (java.util.LinkedHashMap)2 CommandLineConfigurationException (org.apache.maven.shared.invoker.CommandLineConfigurationException)2 MavenCommandLineBuilder (org.apache.maven.shared.invoker.MavenCommandLineBuilder)2 RunFailureException (org.apache.maven.shared.scriptinterpreter.RunFailureException)2 FileNotFoundException (java.io.FileNotFoundException)1 FileWriter (java.io.FileWriter)1 PrintWriter (java.io.PrintWriter)1 Reader (java.io.Reader)1