jeudi 27 septembre 2007

Utilisation des filters dans maven

Les filter de maven permettent de copier des resources en modifiant le contenu défini comme étant filtré. Ils sont utiles pour fonctionner dans différent environnement. Notamment dans les fichier de propriétés qui définissent des propriétés pour passer les test unitaires.

Supposons qu'il soit nécessaire de configurer un chemin d'un fichier de log différemment suivant que l'on travaille sur un station LINUX ou sur son poste de développement Windows.

Ce fichier est défini dans un fichier de src/main/resources/log-aida.properties

son contenu est :

aida.logFile=${fileLog}


Il faut définir dans le fichier pom.xml que ces resources sont filtrées

<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
[...]
</build>



Dans le fichier ~/.m2/settings on défini cette propriété

   <profiles>
<profile>
<id>unix</id>
<properties>
<filelog>/tmp/log.prout</filelog>
</properties>
</profile>
</profiles>
<activeprofiles>
<activeprofile>unix</activeprofile>
</activeprofiles>


Dès lors quand on tape mvn resources:resources le fichier src/main/resources/log-aida.properties est copié vers target/classes/log-aida.properties et son contenu est

aida.logFile=/tmp/log.prout


Aucun commentaire: