Modifier les propriétés en pom.xml lors de l'exécution avec des tâches Ant Maven. C'est possible?
-
27-09-2019 - |
Question
J'ai le cas d'utilisation suivant: Mon application est lancée avec un script Ant, qui demande à l'utilisateur plusieurs questions sur la configuration du projet (paramètres de base de données, etc.). Ces paramètres sont stockés dans un fichier des propriétés.
Alors je veux exécuter Maven dans mon script Ant par tâches Ant Maven, qui devrait remplacer les propriétés prédéfinies dans mon pom.xml avec les propriétés des propriétés fichier. Je ne veux pas changer le pom.xml.
Est-il possible de le faire? Merci à l'avance!
La solution
Vous pouvez redéfinir les propriétés sur la ligne de commande en utilisant maven -D
et ceux-ci remplacera les propriétés dans votre fichier de projet.
Par exemple, dans pom.xml
<properties>
<myProp>A</myProp>
</properties>
Dans votre fourmi build.xml, vous pouvez alors invoquer la ligne de commande mvn comme
mvn -DmyProp=B install
qui Mettra myProp à B dans le projet. de page des tâches mvn ant les traite de l'utilisation d'une macro pour appeler la ligne de commande Maven. Ceci peut être facilement personnalisé pour passer également les propriétés supplémentaires.
Pour ce faire Maven seul, utilisez le exec pour lancer le plugin Maven, en passant les paramètres de commande de la même manière que fait en utilisant la fourmi. tâche java
Autres conseils
Avez-vous essayé de remplacer les propriétés à la volée par tâche fourmi <copy>
?
Supposons que vos propriétés sont dans le fichier settings.properties
. Définissez les propriétés à remplacer dans votre pom.xml
avec @
autour d'eux, vous pouvez copier le fichier pom et remplacer certaines propriétés en même temps. Par exemple:.
<copy file='pom.xml' toFile='real-pom.xml'>
<filterset filtersfile='settings.properties' />
</copy>
Ensuite, vous invoquez Maven:
mvn -f réel pom.xml