Modifier les propriétés en pom.xml lors de l'exécution avec des tâches Ant Maven. C'est possible?

StackOverflow https://stackoverflow.com/questions/2848742

  •  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!

( BTW je l'ai déjà essayé une approche similaire avec Maven seulement, ce qui semble impossible au moment )

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top