use of org.appformer.maven.integration.embedder.MavenEmbedderException 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);
}
}
use of org.appformer.maven.integration.embedder.MavenEmbedderException in project kie-wb-common by kiegroup.
the class ArchetypeServiceImpl method add.
@Override
public void add(final GAV archetypeGav, final GAV templateGav) {
checkNotNull("archetypeGav", archetypeGav);
checkNotNull("templateGav", templateGav);
appendTemplateSuffix(templateGav);
checkArchetypeAlreadyAdded(templateGav);
final Path workingDirectoryPath = createTempDirectory(templateGav.getArtifactId());
final File workingDirectory = new File(workingDirectoryPath.toString());
final FileSystemLock physicalLock = createLock(workingDirectory);
try {
physicalLock.lock();
executeMaven(new ArchetypeGenerateCommand(workingDirectoryPath.toString(), archetypeGav, templateGav));
checkModuleValid(workingDirectoryPath.resolve(templateGav.getArtifactId()));
finishAddExternalArchetype(templateGav, workingDirectory);
} catch (GitAPIException | MavenEmbedderException e) {
LOGGER.error(String.format("Failed to add the archetype %s", templateGav), e);
} finally {
physicalLock.unlock();
}
}
use of org.appformer.maven.integration.embedder.MavenEmbedderException in project kie-wb-common by kiegroup.
the class ArchetypeServiceImplTest method executeMavenSuccessTest.
@Test
public void executeMavenSuccessTest() throws MavenEmbedderException {
final AbstractMavenCommand command = mock(AbstractMavenCommand.class);
doReturn(mock(MavenExecutionResult.class)).when(command).execute();
try {
service.executeMaven(command);
} catch (Exception e) {
fail("Should not have thrown any exception");
}
}
Aggregations