Search in sources :

Example 1 with BuildException

use of org.guvnor.ala.exceptions.BuildException in project kie-wb-common by kiegroup.

the class MavenBuildExecutor method executeMaven.

public static void executeMaven(final File pom, final PrintStream stdout, final PrintStream stderr, final Properties properties, final String... goals) {
    final PrintStream oldout = System.out;
    final PrintStream olderr = System.err;
    final Properties oldProperties = System.getProperties();
    if (properties != null) {
        properties.keySet().forEach((o) -> {
            if (properties.getProperty((String) o) != null) {
                System.setProperty((String) o, properties.getProperty((String) o));
            }
        });
    }
    final MavenEmbedder mavenEmbedder = newMavenEmbedder();
    try {
        if (stdout != null) {
            System.setOut(stdout);
        }
        if (stderr != null) {
            System.setErr(stderr);
        }
        final MavenRequest mavenRequest = MavenProjectLoader.createMavenRequest(false);
        mavenRequest.setGoals(Arrays.asList(goals));
        mavenRequest.setPom(pom.getAbsolutePath());
        final MavenExecutionResult result = mavenEmbedder.execute(mavenRequest);
        if (result.hasExceptions()) {
            for (Throwable t : result.getExceptions()) {
                LOG.error("Error Running Maven", t);
            }
            throw new BuildException("Maven found issues trying to build the pom file: " + pom.getAbsolutePath() + ". Look at the Error Logs for more information");
        }
    } catch (final MavenEmbedderException ex) {
        throw new BuildException("Maven coudn't build the project for pom file: " + pom.getAbsolutePath(), ex);
    } finally {
        System.setProperties(oldProperties);
        mavenEmbedder.dispose();
        System.setOut(oldout);
        System.setErr(olderr);
    }
}
Also used : PrintStream(java.io.PrintStream) MavenEmbedder(org.appformer.maven.integration.embedder.MavenEmbedder) MavenExecutionResult(org.apache.maven.execution.MavenExecutionResult) MavenEmbedderException(org.appformer.maven.integration.embedder.MavenEmbedderException) BuildException(org.guvnor.ala.exceptions.BuildException) Properties(java.util.Properties) MavenRequest(org.appformer.maven.integration.embedder.MavenRequest)

Aggregations

PrintStream (java.io.PrintStream)1 Properties (java.util.Properties)1 MavenExecutionResult (org.apache.maven.execution.MavenExecutionResult)1 MavenEmbedder (org.appformer.maven.integration.embedder.MavenEmbedder)1 MavenEmbedderException (org.appformer.maven.integration.embedder.MavenEmbedderException)1 MavenRequest (org.appformer.maven.integration.embedder.MavenRequest)1 BuildException (org.guvnor.ala.exceptions.BuildException)1