protected Verifier newVerifier()

in core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/AbstractMavenIntegrationTestCase.java [440:505]


    protected Verifier newVerifier(String basedir, String settings, boolean debug) throws VerificationException {
        Verifier verifier = new Verifier(basedir, debug);

        verifier.setAutoclean(false);

        if (settings != null) {
            File settingsFile;
            if (settings.length() > 0) {
                settingsFile = new File("settings-" + settings + ".xml");
            } else {
                settingsFile = new File("settings.xml");
            }

            if (!settingsFile.isAbsolute()) {
                String settingsDir = System.getProperty("maven.it.global-settings.dir", "");
                if (settingsDir.length() > 0) {
                    settingsFile = new File(settingsDir, settingsFile.getPath());
                } else {
                    //
                    // Make is easier to run ITs from m2e in Maven IT mode without having to set any additional
                    // properties.
                    //
                    settingsFile = new File("target/test-classes", settingsFile.getPath());
                }
            }

            String path = settingsFile.getAbsolutePath();

            // dedicated CLI option only available since MNG-3914
            if (matchesVersionRange("[2.1.0,)")) {
                verifier.addCliArgument("--global-settings");
                if (path.indexOf(' ') < 0) {
                    verifier.addCliArgument(path);
                } else {
                    verifier.addCliArgument('"' + path + '"');
                }
            } else {
                verifier.getSystemProperties().put("org.apache.maven.global-settings", path);
            }
        }

        try {
            // Java7 TLS protocol
            if (VersionRange.createFromVersionSpec("(,1.8.0)").containsVersion(getJavaVersion())) {
                verifier.addCliArgument("-Dhttps.protocols=TLSv1.2");
            }

            // auto set source+target to lowest reasonable java version
            // Java9 requires at least 1.6
            if (VersionRange.createFromVersionSpec("[9,12)").containsVersion(getJavaVersion())) {
                verifier.getSystemProperties().put("maven.compiler.source", "1.8");
                verifier.getSystemProperties().put("maven.compiler.target", "1.8");
                verifier.getSystemProperties().put("maven.compiler.release", "8");
            }
            // Java12 requires at least 7
            if (VersionRange.createFromVersionSpec("[12,)").containsVersion(getJavaVersion())) {
                verifier.getSystemProperties().put("maven.compiler.source", "8");
                verifier.getSystemProperties().put("maven.compiler.target", "8");
                verifier.getSystemProperties().put("maven.compiler.release", "8");
            }
        } catch (InvalidVersionSpecificationException e) {
            // noop
        }

        return verifier;
    }