IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

Fichiers de configurations dépendants de l'environnement


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2007
    Messages : 71
    Par défaut Fichiers de configurations dépendants de l'environnement
    Bonjour,

    nous sommes en train de modifier nos différents projets d'entreprise afin d'utiliser Maven au mieux, et surtout de nous simplifier la tâche. C'est plutôt bien parti, mais je suis bloqué sur un point particulier.

    J'ai un fichier de configuration "wsf.properties" qui se trouve actuellement dans src/main/resources. Ce fichier contient des configurations différentes si le projet est déployé sur la production ou le recettage. Pour le moment je me paluche les modifications à la main à chaque compilation, en espérant ne pas l'oublier (ce qui va arriver un jour ou l'autre).

    Je souhaiterais donc avoir 2 fichiers, un pour la production et un pour la recette, de façon à pouvoir configurer Maven pour qu'il me choisisse l'un ou l'autre en fonction du profile choisi (nos profiles fonctionnent sans souci).

    Le problème vient du fait que je charge ce fichier dans le code à partir de son URI, et que le nom du fichier ne peut donc pas changer.

    Quelle solution conseillez-vous ?

    Y a-t-il possibilité de demander à Maven de copier un fichier d'un certain nom "src/main/resources/production/wsf.properties" vers "src/main/resources/wsf.properties", le tout sans conflit ?

    Merci par avance pour vos réponses,
    MiniMarch'

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bonne question, mais je ne crois pas qu'il y a de façon simple de faire...

    Quelques idées :

    Tu as donc wsf-prod.properties et wsf-recettes.properties.

    1. Utiliser le plugin ant-run de Maven pour le renommage du fichier wsf-XXX.properties en wsf.properties...

    2. Je ne sais pas si ça marche, mais tu peux peut-être demander à Maven de filtrer ton fichier source Java et au lieu d'avoir (dans le Java) :

    String URI_FILE = "/wsf.properties";

    tu aurais :

    String URI_FILE = "/${wsf.properties}";
    que remplacerait Maven selon le profil en cours... (qui vaudrait donc soit wsf-prod.properties ou wsf-recettes.properties...

    3. Modifier le code source Java de façon à tester l'existence du fichier. Tu essaies de charger les propriétés du fichier wsf-recettes.properties, et si tu ne le trouve pas, tu prends wsf-recettes.properties... Mais bon, c'est pas terrible comme solution.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Il faut utiliser les profiles maven, c'est fait pour celà entre autres

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2007
    Messages : 71
    Par défaut
    evenisse > Oui, je suis en train de configurer les profiles. Mais je cherche justement le moyen de les utiliser pour répondre à cette problématique. Je n'ai rien trouvé qui me permettait d'avoir systématiquement un fichier précis sous un nom précis avec un contenu différent en fonction de l'environnement de déploiement.

    romaintaz > J'avais effectivement penser à modifier le code pour prendre en compte une adresse de fichier différente. Malheureusement, ce fichier de configuration est utilisé par des clients de Web Services se trouvant eux-mêmes dans des Jar indépendant. Je pourrais m'en sortir, mais ce n'est effectivement pas très joli, et c'est dommage ne pas profiter d'une solution plus élégante et générique.

    Quand tu proposes :

    String URI_FILE = "/${wsf.properties}";
    que signifie ce "/${...}" ? Il s'agit d'une commande Java ou Maven ?

    Merci pour tes propositions en tout cas.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Citation Envoyé par minimarch76 Voir le message
    evenisse > Oui, je suis en train de configurer les profiles. Mais je cherche justement le moyen de les utiliser pour répondre à cette problématique. Je n'ai rien trouvé qui me permettait d'avoir systématiquement un fichier précis sous un nom précis avec un contenu différent en fonction de l'environnement de déploiement.
    Regarde ce doc : http://maven.apache.org/guides/mini/...ironments.html

  6. #6
    Membre éprouvé
    Inscrit en
    Août 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Août 2007
    Messages : 84
    Par défaut
    N'étant pas un grand fan de l'utilisation de ant via Maven, j'utiliserais pour ma part cette solution :
    Définir des répertoires resources additionnels selon les profils.

    Voilci un exemple de ce que cela peut donner, en imaginant avoir un dossier src/main/env-resources contenant les resources spécifiques à chaque environnement, dans des dossiers séparés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <profiles>
    	<profile>
    		<id>prod</id>
    		<activation>
    			<activeByDefault>true</activeByDefault>
    		</activation>			
    		<build>		
    			<resources>
    				<resource>
    					<directory>src/main/env-resources/prod</directory>
    					<filtering>true</filtering>
    				</resource>
    			</resources>
    		</build>
    	</profile>
    	<profile>
    		<id>test</id>
    		<activation>
    			<property>
    				<name>env</name>
    				<value>test</value>
    			</property>
    		</activation>			
    		<build>		
    			<resources>
    				<resource>
    					<directory>src/main/env-resources/test</directory>
    					<filtering>true</filtering>
    				</resource>
    			</resources>
    		</build>
    	</profile>	
    </profiles>
    C'est à mon sens plus "propre" que la solution définie dans le mini guide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Fichier de configuration
    Par Xavinou dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 26/09/2005, 23h02
  2. Réponses: 4
    Dernier message: 09/09/2005, 12h59
  3. [Log4j] fichier de configuration ou XML ?
    Par nabilblk dans le forum Logging
    Réponses: 2
    Dernier message: 02/09/2005, 16h42
  4. [langage] Lire un fichier de configuration
    Par bobinoo dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2004, 15h53
  5. Les fichiers de configuration de comptes avec Samba
    Par tomnie dans le forum Réseau
    Réponses: 4
    Dernier message: 18/03/2004, 08h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo