public void execute()

in maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java [201:276]


    public void execute() throws MojoExecutionException {
        Log log = this.getLog();

        if (skip) {
            log.info("Skipping Rule Enforcement.");
            return;
        }

        Optional<PlexusConfiguration> rulesFromCommandLine = createRulesFromCommandLineOptions();
        List<EnforcerRuleDesc> rulesList;

        // current behavior - rules from command line override all other configured rules.
        List<EnforcerRuleDesc> allRules = enforcerRuleManager.createRules(rulesFromCommandLine.orElse(rules), log);
        rulesList = filterOutSkippedRules(allRules);

        List<EnforcerRuleDesc> additionalRules = processRuleConfigProviders(rulesList);
        rulesList = filterOutRuleConfigProviders(rulesList);
        rulesList.addAll(additionalRules);

        if (rulesList.isEmpty()) {
            if (failIfNoRules) {
                throw new MojoExecutionException(
                        "No rules are configured. Use the skip flag if you want to disable execution.");
            } else {
                log.warn("No rules are configured.");
                return;
            }
        }

        // create my helper
        PluginParameterExpressionEvaluator evaluator = new PluginParameterExpressionEvaluator(session, mojoExecution);
        EnforcerRuleHelper helper = new DefaultEnforcementRuleHelper(session, evaluator, log, container);

        // if we are only warning, then disable
        // failFast
        if (!fail) {
            failFast = false;
        }

        List<String> errorMessages = new ArrayList<>();

        // go through each rule
        for (int ruleIndex = 0; ruleIndex < rulesList.size(); ruleIndex++) {

            EnforcerRuleDesc ruleDesc = rulesList.get(ruleIndex);
            EnforcerLevel level = ruleDesc.getLevel();
            try {
                executeRule(ruleIndex, ruleDesc, helper);
            } catch (EnforcerRuleError e) {
                String ruleMessage = createRuleMessage(ruleIndex, ruleDesc, EnforcerLevel.ERROR, e);
                throw new MojoExecutionException(System.lineSeparator() + ruleMessage, e);
            } catch (EnforcerRuleException e) {

                String ruleMessage = createRuleMessage(ruleIndex, ruleDesc, level, e);

                if (failFast && level == EnforcerLevel.ERROR) {
                    throw new MojoExecutionException(System.lineSeparator() + ruleMessage, e);
                }

                if (level == EnforcerLevel.ERROR) {
                    errorMessages.add(ruleMessage);
                } else {
                    log.warn(ruleMessage);
                }
            }
        }

        if (!errorMessages.isEmpty()) {
            if (fail) {
                throw new MojoExecutionException(
                        System.lineSeparator() + String.join(System.lineSeparator(), errorMessages));
            } else {
                errorMessages.forEach(log::warn);
            }
        }
    }