in src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java [476:497]
private void setupMavenHome(InvocationRequest request) {
if (request.getMavenHome() != null) {
mavenHome = request.getMavenHome();
} else if (System.getProperty("maven.home") != null) {
mavenHome = new File(System.getProperty("maven.home"));
}
if (mavenHome != null && !mavenHome.isDirectory()) {
File binDir = mavenHome.getParentFile();
if (binDir != null && "bin".equals(binDir.getName())) {
// ah, they specified the mvn
// executable instead...
mavenHome = binDir.getParentFile();
}
}
if (mavenHome != null && !mavenHome.isDirectory()) {
throw new IllegalStateException("Maven home is set to: '" + mavenHome + "' which is not a directory");
}
logger.debug("Using maven.home of: '" + mavenHome + "'.");
}