Способ указания списка значений через системное свойство для плагина зависит от того, насколько актуальным является плагин.
Однако, если вы имеете дело с надлежащим реализованным плагином, который актуален, то правильный способ указания массива значений для плагина - через строки, разделенные запятыми.
Вот ссылка:
http://blog.sonatype.com/2011/03/configuring-plugin-goals-in-maven-3/
Вот цитата из ссылки:
Для многих параметров плагина иногда удобно указывать
их значения из командной строки через системные свойства. В прошлом,
это было ограничено параметрами простых типов, таких как String или Boolean.
Последний выпуск Maven наконец-то позволяет пользователям плагинов настраивать
коллекции или массивы из командной строки через запятую
строки. Возьмем, к примеру, параметр плагина:
Пройдя немного дальше, мы можем взглянуть на более конкретный пример.
Рассмотрим плагин Wildfly Maven.
Этот плагин имеет устаревшее свойство конфигурации, которое называется:
jvmArgs.
Ожидается, что он будет передан в виде списка значений, разделенных пробелами.
Как мы все знаем, в командной строке возиться с пробелами не восхитительно.
Поэтому, если мы посмотрим на определение этого параметра в плагине кода mojo, вы найдете что-то вроде этого (здесь идет другая цитата).
/**
* A space delimited list of JVM arguments.
*
* @deprecated use {@link #javaOpts}
*/
@Parameter(alias = "jvm-args", property = PropertyNames.JVM_ARGS)
@Deprecated
private String jvmArgs;
Так что это старый способ делать вещи.
Теперь, если вы используете последнюю версию этого плагина (например, Alpha6).
Тогда исходный код будет иметь красивое новое поле с именем javaOpts.
Давайте посмотрим, как выглядит поле в коде.
/**
* The JVM options to use.
*/
@Parameter(alias = "java-opts", property = PropertyNames.JAVA_OPTS)
private String[] javaOpts;
Итак, мы видим, что у нас есть хорошее поле массива в StartMojo.
Это поле массива правильно помечено.
И двигатель Maven сделает тяжелую работу по установке значений в Mojo.
Если вы хотите ввести данные в это поле через командную строку, вы должны указать в командном файле что-то вроде:
-Dwildfly.javaOpts="-Xmx1536M,-Xms1536M,-XX:MaxMetaspaceSize=512M,-XX:-HeapDumpOnOutOfMemoryError"
Если вы попробуете то же самое, используя sapces вместо commans.
Я покажу вам, что происходит:
[INFO] STANDALONE сервер запускается. Неверный максимальный размер кучи:
-Xmx1536M -XX: MaxMetaspaceSize = 512 м -XX: -HeapDumpOnOutOfMemoryError
Видите ли, maven, когда он проглотил системное свойство, заполненное пробелами, не разбил строку. Поэтому Wildfly попытался настроить параметры памяти jvm так, как если бы максимальная память была полной строкой.
С другой стороны, когда я использую запятые для разделения, Mojo правильно обогащается, и я могу контролировать настройки памяти сервера приложений при запуске.
И, конечно, вы хотите использовать системные свойства, а не конфигурацию XML pom.xml, для таких задач, как настройка заданий Jenkins. Со свойствами системы вы более гибки.
Вот и все.