private void setupMavenHome()

in src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java [482:503]


    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 + "'.");
    }