Отсутствует или недействительные правила плагина Maven

Я пытаюсь настроить плагин принудительного применения для maven для обеспечения минимальной версии Java. Тем не менее, всякий раз, когда я пытаюсь запустить mvn enforcer:enforce, я получаю:

Параметры 'rules' для цели org.apache.maven.plugins: maven -forcer-plugin: 1.3.1: принудительное выполнение отсутствует или недействительно

Вот соответствующая часть моего файла POM:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.3.1</version>
    <executions>
        <execution>
            <id>enforce-java</id>
            <phase>validate</phase>
            <goals>
                <goal>enforce</goal>
            </goals>
            <configuration>
                <rules>
                    <requireJavaVersion>
                        <version>(1.7.0-20,)</version>
                    </requireJavaVersion>
                </rules>
            </configuration>
        </execution>
    </executions>
</plugin>

Я также попытался заменить блок <requireJavaVersion> на <alwaysPass/>, если что-то было недопустимым, но все равно не удалось с той же ошибкой.

Ответ 1

Возможно, вы используете недопустимые имена правил. Проверьте страницу правил. Имена правил чувствительны к регистру. Хотя это не тот случай, здесь.

---- Редактировать ----

Обратите внимание на то, что конфигурация POM имеет идентификатор выполнения enforce-java и что выполнение связано с этапом validate жизненного цикла. Команда mvn enforcer:enforce выполняет цель, а не этап в жизненном цикле. Конфигурация, которую вы указали в POM, не относится к enforcer:enforce цели.

Есть два способа заставить это работать. Какой из них вы выберете, зависит от того, что вам нужно.

  1. Если вы просто пытаетесь протестировать конфигурацию плагина принудительного применения без запуска всей сборки, запустите mvn validate.
  2. Если требование заключается в том, что mvn enforcer:enforce работает, измените идентификатор выполнения на default-cli.