Bonjour à tous,

Je travail depuis quelques temps avec des webapp, servlets, jsp et toute cette sorte de choses. Mes projets sont archivés sur un gestionnaire de version (SVN en l'occurence). Il peuvent être déployés sur trois environnement différents: developpement, UAT (tests et intégration mélangés) et production. Evidemment, chacun des environnement possède des configurations différentes: bases, adresses URL, etc... Donc, selon l'environnement, le contenu de mon WEB-INF sera différent: les mêmes fichiers et noms beans (je travaille avec Struts et Spring), les mêmes fichiers et noms de configs, mais partout des valeurs différentes.

Or j'aimerais non seulement que mon SVN contienne toutes les versions, mais également mon répertoire de travail sous Eclipse puisque je dois pouvoir mettre à jours les beans sur tous les environnements lorsqu'ils sont modifiés.

Jusqu'ici je m'en sortais avec une pirouette: sous WEB-INF je créeais trois sous-répertoires, DEV, UAT et PROD avec les configs qui vont bien à l'intérieur. Dans mon web.xml, je mettais ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>/WEB-INF/**/applicationContext.xml</param-value>
</context-param>
... et lorsque je deployais sur les différents environnements, je ne prenais que le sous-répertoire correspondant (DEV, UAT, ou PROD) sans avoir besoin de modifier le web.xml. Ca marchait très bien comme ça...

... mais il y a un mais :-p Ca marchait bien car j'avais externalisé le tomcat de l'environnement de DEV (sur ma machine perso) par rapport à mon Eclipse: quand je voulais tester je copiais les bons fichiers dans le rep webapp du tomcat et le tour était joué. Seulement maintenant j'aimerais utiliser les bonnes features d'Eclipse qui permettent de lancer un serveur directement sur le répertoire de travail, sans rien avoir à copier ailleurs. Mais voilà, je vous le donne dans le mille: sur mon rep de travail j'ai les trois sous-répertoire DEV, UAT et PROD en parallèle, ce qui crée des conflits et empêche l'appli de tourner!!

Du coup je me dit que ma pirouette des sous-rep était un peu trop "bouts de ficelles" pour être honnête :-D Et j'aimerais savoir s'il existe des "bonnes pratiques" permettant de gérer ce genre de situation de multi-environnement sans avoir à carrément supprimer les configs de PROD ou d'UAT quand on lance l'environnement de DEV, et donc sans avoir à les récupérer sur SVN chaque fois qu'on veut les mettre à jour...

Quelqu'un peut-il me renseigner? :-)

Merci d'avance!