Définition des valeurs par défaut pour personnaliser Maven 2 propriétés
J'ai un Maven pom.xml avec un plugin que je veux être en mesure de contrôler sur la ligne de commande. Tout fonctionne sinon bien, à l'exception, même après recherche sur le net d'un moment, je ne peux pas comprendre comment définir une valeur par défaut pour mon contrôle de la propriété:
<plugin>
...
<configuration>
<param>${myProperty}</param>
</configuration>
...
</plugin>
Donc, si je exécuter Maven avec
mvn -DmyProperty=something ...
tout va bien, mais j'aimerais avoir une valeur spécifique attribué à myProperty aussi sans -DmyProperty=...
commutateur. Comment cela peut-il être fait?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir la propriété valeur par défaut définie dans
<build>/<properties>
ou dans un profil comme indiqué ci-dessous. Lorsque vous fournissez la valeur de la propriété sur la ligne de commande avec-DmyProperty=anotherValue
, alors il sera de remplacer la définition de la POM. C'est, tous définitions des valeurs de propriété dans le POM est uniquement un par défaut de la valeur pour les propriétés.-D
puis propriété sera remplacée si elle a été définie dans un profil ou pas.Taylor L approche fonctionne très bien, mais vous n'avez pas besoin de l'appoint de profil. Vous pouvez simplement déclarer les valeurs de propriété dans le fichier POM.
Vous pouvez également définir les propriétés de votre utilisateur settings.xml fichier dans le cas où vous voulez que chaque utilisateur d'être en mesure de définir leurs propres paramètres par défaut. Nous utilisons cette approche pour masquer les informations d'identification du serveur CI utilise pour certains plugins de développeurs.
Vous pouvez utiliser quelque chose comme ci-dessous:
@akostadinov la solution fonctionne très bien pour l'usage commun... Mais si la propriété désirée doit être utilisé par réacteur composant lors de la résolution des dépendances de phase (très tôt dans mvn pom hiérarchie de traitement...), vous devez utiliser le profil "aucune activation" test de mécanisme pour s'assurer que l'option de ligne de commande fournie valeur est toujours priorité sur la valeur fournie à l'intérieur pom.xml. Et ce quelle que soit la profondeur est votre pom hiérarchie.
Pour ce faire, ajoutez ce genre de profil dans votre parent pom.xml :
-D
ne fonctionne pas?Cela pourrait fonctionner pour vous:
De cette façon,
mvn clean
utilisera "toto" en tant que par défaut param. Dans le cas où vous avez besoin de remplacer l'utilisationmvn -P notdefault -DmyProperty=something