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 :

Gérer des déploiement différents avec Maven.


Sujet :

Maven Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 614
    Points : 694
    Points
    694
    Par défaut Gérer des déploiement différents avec Maven.
    Bonjour,

    J'ai une petite question pour une utilisation du couple Maven et Spring :

    Je réalise donc mes développement en respectant l'arbo Maven. Ainsi, les fichiers de config Spring sont dans l'arborescence /src/main/resources et /src/test/resources. Maven fait bien appel au fichier de config correspondant en fonction du contex test ou déploiement.

    Mon problème est que j'ai besoin d'avoir 2 types de déploiements différents dont la différence sera que des fichiers de configuration seront différents. Est il possible (et comment ) de générer mon jar test et mon jar prod à coup d'options plutôt que d'éditer les fichiers à chaque fois ? Je n'ai pas trouvé d'informations à ce sujet.

    Merci par avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    avril 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : avril 2007
    Messages : 219
    Points : 200
    Points
    200
    Par défaut
    Salut,

    Si j'ai bien compris tu as deux modes de déploiement et suivant chaque mode des fichiers de config différent.

    Moi j'utiliserai le plugin resource de maven 2 :

    http://maven.apache.org/plugins/mave...gin/index.html

    Tu crées deux repertoires dans src/main/resources :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    src 
        |
        main
             |
             resources
                       - mode 1
                       - mode 2
    tu crées deux profils :

    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
     
    <profiles> 
            <profile> 
                <id>prod</id> 
               <build>
                    <resources>
                       <resource>
                             <directory>../src/main/resources/mode1</directory>
                       </resource>
                    </resources>
                </build>
            </profile> 
     
            <profile>
               <id>test</id> 
               <build>
                    <resources>
                       <resource>
                             <directory>../src/main/resources/mode2</directory>
                       </resource>
                    </resources>
                </build>
            </profile>         
    </profiles>
    Tu actives l'un ou l'autre quand tu en as besoin.

    Pour moi ca ca fonctionne (mais je n'ai pas essayé )

    @+

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    avril 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : avril 2007
    Messages : 219
    Points : 200
    Points
    200
    Par défaut
    Ou tu peux exclure ou inclure des resources avec le plug-in resources.

    @+

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    février 2005
    Messages
    4 051
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : février 2005
    Messages : 4 051
    Points : 7 639
    Points
    7 639
    Par défaut
    Moi, je conseille plutot l'assembly.

    Tu ne mets rien dans le jar standard, et tu fais une assembly pour prod et test, qui ne fait que rajouter la config qui va bien dans le jar....

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 614
    Points : 694
    Points
    694
    Par défaut
    Merci pour vos réponses. Cela m'a permi d'orienter mes recherches et en effet, d'après "better builds with Maven", l'idée est d'utiliser des profiles et peut être en effet des assembly.

    C'est un petit travail un peu couteux en ce moment mais d'ici la semaine prochaine, je test ça et confirme la solution ici si ça peut en aider d'autres.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2006
    Messages : 614
    Points : 694
    Points
    694
    Par défaut
    Bon, alors comme promis, la solution :

    Dans mon cas, je suis passé par des profiles :

    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
     
    	<profiles>
    		<profile>
    			<id>integration</id>
    			<properties>
    				<environment.type>integ</environment.type>
    			</properties>
    			<build>
    				<resources>
    					<resource>
    						<directory>${basedir}/src/main/resources</directory>
    					</resource>
    				</resources>
    			</build>
    		</profile>
    		<profile>
    			<id>dev</id>
    			<activation>
    				<activeByDefault>true</activeByDefault>
    			</activation>
    			<properties>
    				<environment.type>dev</environment.type>
    			</properties>
    			<build>
    				<resources>
    					<resource>
    						<directory>${basedir}/src/main/resources</directory>
    					</resource>
    				</resources>
    			</build>
    		</profile>
    	</profiles>
    Dans mon fichier de config Sprin, j'ai externalisé les choses propres à un type de déploiement dans un fichier à part, soit dev-bean.xml et integ-bean.xml.

    Dans le fichier de configuration de Spring, j'ai rajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <import resource="classpath:/mon/classpath/${environment.type}-beans.xml" />
    le profile dev est actif par défaut. "mvn install" utilise donc environment.type=dev, et l'include se fait avec le fichier dev-beans.xml. "mvn -Pintegration install" active environment.type=integ et l'include utilise integ-beans.xml.

    Simple et rapide à mettre en place, pour l'instant ça répond à mon besoin. Merci pour vos interventions.

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

Discussions similaires

  1. Gérer des profils différents avec des sessions PhP
    Par phildur dans le forum Langage
    Réponses: 4
    Dernier message: 08/03/2011, 17h47
  2. Gérer des schémas multiples avec Hibernate
    Par romaintaz dans le forum Hibernate
    Réponses: 3
    Dernier message: 25/11/2009, 18h17
  3. Gérer des fichiers Excel avec java
    Par Aladin230 dans le forum Documents
    Réponses: 2
    Dernier message: 21/07/2009, 15h59
  4. Gérer des attributs "value" avec Javascript
    Par Jarodd dans le forum Général JavaScript
    Réponses: 40
    Dernier message: 14/11/2008, 13h44
  5. Comment gérer des sous ensembles avec des "enum" ?
    Par ogattaz dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2007, 11h29

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