showFatalError( "Unable to read settings.xml", e, showErrors );
return 1;
}
Maven maven = null;
MavenExecutionRequest request = null;
LoggerManager loggerManager = null;
try
{
// logger must be created first
loggerManager = (LoggerManager) embedder.lookup( LoggerManager.ROLE );
if ( debug )
{
loggerManager.setThreshold( Logger.LEVEL_DEBUG );
}
else if ( commandLine.hasOption( CLIManager.QUIET ) )
{
// TODO: we need to do some more work here. Some plugins use sys out or log errors at info level.
// Ideally, we could use Warn across the board
loggerManager.setThreshold( Logger.LEVEL_ERROR );
// TODO:Additionally, we can't change the mojo level because the component key includes the version and it isn't known ahead of time. This seems worth changing.
}
ProfileManager profileManager = new DefaultProfileManager( embedder.getContainer() );
if ( commandLine.hasOption( CLIManager.ACTIVATE_PROFILES ) )
{
String profilesLine = commandLine.getOptionValue( CLIManager.ACTIVATE_PROFILES );
StringTokenizer profileTokens = new StringTokenizer( profilesLine, "," );
while ( profileTokens.hasMoreTokens() )
{
String profileAction = profileTokens.nextToken().trim();
if ( profileAction.startsWith( "-" ) )
{
profileManager.explicitlyDeactivate( profileAction.substring( 1 ) );
}
else if ( profileAction.startsWith( "+" ) )
{
profileManager.explicitlyActivate( profileAction.substring( 1 ) );
}
else
{
// TODO: deprecate this eventually!
profileManager.explicitlyActivate( profileAction );
}
}
}
request = createRequest( commandLine, settings, eventDispatcher, loggerManager, profileManager,
executionProperties, showErrors );
setProjectFileOptions( commandLine, request );
maven = createMavenInstance( settings.isInteractiveMode() );
}
catch ( ComponentLookupException e )
{
showFatalError( "Unable to configure the Maven application", e, showErrors );
return 1;
}
finally
{
if ( loggerManager != null )
{
try
{
embedder.release( loggerManager );
}
catch ( ComponentLifecycleException e )
{
showFatalError( "Error releasing logging manager", e, showErrors );
}
}
}
try
{
maven.execute( request );
}
catch ( MavenExecutionException e )
{
return 1;
}