in src/main/java/org/apache/maven/shared/verifier/Embedded3xLauncher.java [193:241]
public int run( String[] cliArgs, Properties systemProperties, String workingDirectory, File logFile )
throws IOException, LauncherException
{
PrintStream out = ( logFile != null )
? new PrintStream( Files.newOutputStream( logFile.toPath() ) ) : System.out;
try
{
File workingDirectoryPath = new File( workingDirectory );
Properties originalProperties = System.getProperties();
System.setProperties( null );
System.setProperty( "maven.home", originalProperties.getProperty( "maven.home", "" ) );
System.setProperty( "user.dir", workingDirectoryPath.getAbsolutePath() );
System.setProperty( "maven.multiModuleProjectDirectory",
findProjectBaseDirectory( workingDirectoryPath ).getAbsolutePath() );
for ( Object o : systemProperties.keySet() )
{
String key = (String) o;
String value = systemProperties.getProperty( key );
System.setProperty( key, value );
}
ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader( mavenCli.getClass().getClassLoader() );
try
{
Object result = doMain.invoke( mavenCli, new Object[] { cliArgs, workingDirectory, out, out } );
return ( (Number) result ).intValue();
}
finally
{
Thread.currentThread().setContextClassLoader( originalClassLoader );
System.setProperties( originalProperties );
}
}
catch ( IllegalAccessException | InvocationTargetException e )
{
throw new LauncherException( "Failed to run Maven", e );
}
finally
{
if ( logFile != null )
{
out.close();
}
}
}