2010-07-25 3 views
0

Dans mon script Ant, je suis l'exécution Maven comme ceci:Maven Ant Tâche: Remplacer la propriété dans pom.xml lors de l'exécution de Maven Ant

<artifact:mvn pom="${basedir}/pom.xml"> 
    <arg value="glassfish:deploy" /> 
</artifact:mvn> 

Dans mon pom.xml, il y a une propriété:

<properties> 
    <glassfish.home>${env.GLASSFISH}</glassfish.home> 
</properties> 

Cette valeur doit être remplacée par une valeur fournie par le script Ant. Est-il possible d'écraser une propriété existante dans le fichier pom.xml lors de l'exécution avec la tâche Ant Maven? Quel est le moyen le plus facile de le faire?

+0

Mais ... pourquoi n'utilisez-vous pas un plugin maven glassfish? –

+0

J'ai un grand script Ant avec lequel mon application est installée et configurée. Là, je fais des choses que je ne peux pas faire avec Maven. Le script Ant appelle Maven lorsque c'est fait avec l'installation et la configuration. – ifischer

+0

Ah ok, je vois (tampon). –

Répondre

4

J'ai oublié que vous pouvez simplement transmettre des propriétés à une construction Maven sur la ligne de commande. Donc, pour changer la propriété de Ant, j'ai inséré un autre arg, comme ceci:

<property name="GLASSFISH" value="${basedir}/glassfish"/> 
<artifact:mvn pom="${basedir}/pom.xml"> 
    <arg value="glassfish:deploy" /> 
    <arg value="-Dglassfish.home=${GLASSFISH}"/> 
</artifact:mvn> 

Fonctionne bien.

Questions connexes