Bonjour,

Donc voilà, j'ai une application qui dispose de plusieurs fichiers de configuration (limitons nous à appli.properties pour les explications).
Ce fichier contient des valeurs dépendantes de l'environnement. On trouvera ainsi par exemple ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
server.port=${envi.server.port}
J'ai, d'un autre côté, un ensemble de fichiers de propriétés, un par environnement (dev.properties, homolo.properties, etc.).
Ces fichiers contiennent les valeurs qui sont utilisées pour compléter le fichier appli.properties. On y trouve par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
envi.server.port=4242
Mon build est géré par Maven2. Le principe fonctionne bien quand je builde ça en dehors d'Eclipse, même si j'ai du passer par un plugin properties.

Maintenant, je ne sais trop comment faire pour que ces fichiers de configuration soient correctement filtrés pour que mon application puisse tourner sur Eclipse.
En effet, si je ne fais rien de spécial, lorsqu'Eclipse me builde mon application, mes fichiers de configuration contiennent les clés des propriétés (genre ${envi.server.port}) et non leur valeur.

Là, j'ai deux options :

1. J'opte pour le full-Maven, avec m2eclipse. J'ajoute donc un Builder Maven dans ma configuration Eclipse du projet. Ainsi, à chaque build Eclipse, le build Maven2 est lancé, et mes fichiers de configuration sont filtrés.

2. J'opte pour Ant (en conservant Maven2 pour les builds hors Eclipse). En gros, je définis - tant bien que mal - une tâche Ant qui ne fait que la copie les fichiers ressources en les filtrant, rien de plus.

Le problème commun à ces deux solutions est qu'un build est refait à chaque opération (genre sauvegarde d'un fichier Java) et donc me prend du temps. C'est cependant en vue de le minimiser que j'ai opté pour une solution Ant, puisque son exécution ne me prend que 3 secondes, contre plus d'une dizaine avec Maven.

Que pensez-vous de mon approche, et quels sont vos conseils ?
Avez-vous une autre idée pour faciliter les choses ?

Merci d'avance.