Переопределить конфигурацию плагина 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). Вы можете использовать переменные, чтобы избежать такого поведения. Этот фрагмент вашего ответа использует его.