La manière de spécifier une liste de valeurs via la propriété système, pour un plugin, dépend de la mise à jour du plugin.
Cependant, si vous avez besoin d'un plugin mis à jour correctement mis à jour, alors la façon correcte de spécifier un tableau de valeurs à un plugin est de passer par des chaînes séparées par des virgules.
Voici une référence: http://blog.sonatype.com/2011/03/configuring-plugin-goals-in-maven-3/
Voici une citation de la référence:
Pour de nombreux paramètres du plugin, il est parfois pratique de spécifier leurs valeurs de la ligne de commande via les propriétés du système. Dans le passé, était limité aux paramètres de type simple comme String ou Boolean. La dernière version de Maven permet enfin aux utilisateurs de plugins de configurer des collections ou des tableaux à partir de la ligne de commande via des chaînes séparées par des virgules. Prenons par exemple un paramètre plugin comme celui-ci:
En allant un peu plus loin, nous pouvons regarder un exemple plus concret. Considérons, le plugin Wildfly maven. Ce plugin possède une propriété de configuration obsolète appelée: jvmArgs.
On s'attendait à ce qu'il soit transmis en tant que liste de valeurs séparées par des espaces. Comme nous le savons tous, dans la ligne de commande, déconner avec des espaces n'est pas adorable. Donc, si nous regardons la définition de ce paramètre dans le code plugin mojo, vous trouverez quelque chose comme ça (voici une autre citation).
/**
* A space delimited list of JVM arguments.
*
* @deprecated use {@link #javaOpts}
*/
@Parameter(alias = "jvm-args", property = PropertyNames.JVM_ARGS)
@Deprecated
private String jvmArgs;
C'est donc l'ancienne façon de faire les choses.
Maintenant, si vous utilisez la dernière version de ce plugin (par exemple Alpha6). Ensuite, le code source aura un joli nouveau champ appelé javaOpts. Regardons à quoi ressemble le champ dans le code.
/**
* The JVM options to use.
*/
@Parameter(alias = "java-opts", property = PropertyNames.JAVA_OPTS)
private String[] javaOpts;
Donc, ce que nous voyons est que nous avons un bon champ de tableau dans le StartMojo. Ce champ de tableau est correctement annoté. Et le moteur Maven fera la lourde tâche de régler les valeurs dans le Mojo.
Lorsque vous voulez pomper des données dans ce domaine via la ligne de commande, vous devez spécifier dans votre fichier de lot quelque chose de la forme:
-Dwildfly.javaOpts="-Xmx1536M,-Xms1536M,-XX:MaxMetaspaceSize=512M,-XX:-HeapDumpOnOutOfMemoryError"
Si vous essayez samething à l'aide sapces au lieu de Commans. Je vais vous montrer ce qui se passe:
[INFO] Le serveur STANDALONE est en cours de démarrage. taille maximale du tas non valide: -Xmx1536M -XX: MaxMetaspaceSize = 512m -XX: -HeapDumpOnOutOfMemoryError
Vous voyez, Maven avec avalé ma propriété complète du système d'espaces, il n'a pas fait une scission de chaîne. Wildfly a donc essayé de configurer les paramètres de mémoire de jvm comme si la mémoire max était cette chaîne complète. D'autre part, lorsque j'utilise des virgules pour séparer, le Mojo est correctement enrichi et je peux prendre le contrôle des paramètres de la mémoire du serveur d'application lors de son démarrage.
Et bien sûr, vous voulez utiliser les propriétés du système et non pom.xml configuration XML, pour des tâches telles que la mise en place des emplois Jenkins. Avec les propriétés du système, vous êtes plutôt plus flexible.
Voilà.
C'est ma conclusion aussi, malheureusement. – torbjornvatn
J'ai ajouté quelques conseils pour une approche alternative qui pourrait aider, utilisez-io partagé avec les fichiers de descripteurs externes pour passer un ensemble de configuration dans le plug-in avec un seul paramètre. –