}
public int run( String[] cliArgs, Map envVars, String workingDirectory, File logFile )
throws IOException, LauncherException
{
Commandline cmd = new Commandline();
cmd.setExecutable( executable );
if ( mavenHome != null )
{
cmd.addEnvironment( "M2_HOME", mavenHome );
}
if ( envVars != null )
{
for ( Iterator i = envVars.keySet().iterator(); i.hasNext(); )
{
String key = (String) i.next();
cmd.addEnvironment( key, (String) envVars.get( key ) );
}
}
if ( envVars == null || envVars.get( "JAVA_HOME" ) == null )
{
cmd.addEnvironment( "JAVA_HOME", System.getProperty( "java.home" ) );
}
cmd.addEnvironment( "MAVEN_TERMINATE_CMD", "on" );
cmd.setWorkingDirectory( workingDirectory );
for ( int i = 0; i < cliArgs.length; i++ )
{
cmd.createArgument().setValue( cliArgs[i] );
}
Writer logWriter = new FileWriter( logFile );
StreamConsumer out = new WriterStreamConsumer( logWriter );