Переопределить конфигурацию плагина Maven, определенную в pom pluginУправление из командной строки
POM, который наследует мой проект, содержит <pluginManagement>
для плагина release
, который указывает дополнительные arguments
.
Мой вопрос: Есть ли способ переопределить параметр arguments
из командной строки в этом случае?
Родительский POM имеет следующее:
<pluginManagement>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<arguments>-Prelease</arguments>
</configuration>
</plugin>
</pluginManagement>
Из-за этого аргумент командной строки не работает:
mvn release:prepare -Darguments="-Pmock -Prelease"
Элемент -Darguments="-Pmock -Prelease"
не действует. Если arguments
еще не указан, он работает.
Невозможно изменить родительский POM или не использовать его.
Ответы
Ответ 1
Нашел решение. В моем POM я добавляю это, которое переопределяет настройки родительского POM и позволяет указывать дополнительные аргументы в командной строке, например. -Darguments=-Pmock
<pluginManagement>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<arguments>${arguments} -Prelease</arguments>
</configuration>
</plugin>
</pluginManagement>
Ответ 2
Вы не можете переопределить конфигурацию, которая уже установлена в POM (см. Maven Bug MNG-4979). Вы можете использовать переменные, чтобы избежать такого поведения. Этот фрагмент вашего ответа использует его.