Search in sources :

Example 1 with DefaultInvoker

use of org.apache.maven.shared.invoker.DefaultInvoker 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 DefaultInvoker

use of org.apache.maven.shared.invoker.DefaultInvoker 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 DefaultInvoker

use of org.apache.maven.shared.invoker.DefaultInvoker 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;
}
Also used : PrintStream(java.io.PrintStream) Invoker(org.apache.maven.shared.invoker.Invoker) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) PrintStreamLogger(org.apache.maven.shared.invoker.PrintStreamLogger) MavenInvocationException(org.apache.maven.shared.invoker.MavenInvocationException) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) FileNotFoundException(java.io.FileNotFoundException) InvocationResult(org.apache.maven.shared.invoker.InvocationResult) File(java.io.File) PrintStreamHandler(org.apache.maven.shared.invoker.PrintStreamHandler)

Example 4 with DefaultInvoker

use of org.apache.maven.shared.invoker.DefaultInvoker in project unleash-maven-plugin by shillner.

the class BuildProject method setupInvoker.

private Invoker setupInvoker() {
    Invoker invoker = new DefaultInvoker();
    File calculatedMavenHome = ReleaseUtil.getMavenHome(Optional.fromNullable(this.mavenHome));
    if (calculatedMavenHome != null) {
        this.log.debug("\tUsing maven home: " + calculatedMavenHome.getAbsolutePath());
        invoker.setMavenHome(calculatedMavenHome);
    }
    return invoker;
}
Also used : Invoker(org.apache.maven.shared.invoker.Invoker) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) DefaultInvoker(org.apache.maven.shared.invoker.DefaultInvoker) File(java.io.File)

Example 5 with DefaultInvoker

use of org.apache.maven.shared.invoker.DefaultInvoker 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

DefaultInvoker (org.apache.maven.shared.invoker.DefaultInvoker)13 Invoker (org.apache.maven.shared.invoker.Invoker)12 File (java.io.File)10 DefaultInvocationRequest (org.apache.maven.shared.invoker.DefaultInvocationRequest)10 InvocationRequest (org.apache.maven.shared.invoker.InvocationRequest)10 MavenInvocationException (org.apache.maven.shared.invoker.MavenInvocationException)10 InvocationResult (org.apache.maven.shared.invoker.InvocationResult)9 Properties (java.util.Properties)3 IOException (java.io.IOException)2 MavenInvocationSilentOutputHandler (com.twosigma.beakerx.kernel.commands.MavenInvocationSilentOutputHandler)1 MavenJarResolverSilentLogger (com.twosigma.beakerx.kernel.commands.MavenJarResolverSilentLogger)1 FileNotFoundException (java.io.FileNotFoundException)1 FileWriter (java.io.FileWriter)1 PrintStream (java.io.PrintStream)1 PrintWriter (java.io.PrintWriter)1 Reader (java.io.Reader)1 FileVisitResult (java.nio.file.FileVisitResult)1 Path (java.nio.file.Path)1 BasicFileAttributes (java.nio.file.attribute.BasicFileAttributes)1 ArrayList (java.util.ArrayList)1