Отсутствует или недействительные правила плагина 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
цели.
Есть два способа заставить это работать. Какой из них вы выберете, зависит от того, что вам нужно.
- Если вы просто пытаетесь протестировать конфигурацию плагина принудительного применения без запуска всей сборки, запустите
mvn validate
. - Если требование заключается в том, что
mvn enforcer:enforce
работает, измените идентификатор выполнения на default-cli
.