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 :

Déploiement paramétré pour chaque environnement ?


Sujet :

Maven Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Par défaut Déploiement paramétré pour chaque environnement ?
    Bonjour,

    Je développe sur une application Web.
    J'utilise maven pour générer des WAR.
    L' application contient aussi des scripts et batch à mettre à jour.

    J'aimerais utiliser maven pour faire du déploiement et paramétrage pour chaque environnement (prod/preprod/recette / ...)

    Par exemple, mon batch en JAR va chercher un fichier de conf en XML qui est spécifique pour chaque environnement.

    Peut-on utiliser maven pour créer des WAR spécifique par environnement paramétrant le fichier project-config.preoperties ?

    Peut-on utiliser maven pour copier et paramétrer des fichiers de conf. spécifique à chaque environnement ? Sinon quel outils puis-je utilisé ?

    L'objectif final est d'automatiser la copie et la configuration de fichier de conf. pour chaque environnement.

  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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Le plus simple, c'est de définir des profiles au sein de ton pom.xml. Chaque profile s'activera en fonction de la valeur d'une variable passée dans la ligne de commande. Par exemple mvn clean install -Denv=recette. Dans ton pom.xml, tu peux presque tout configurer par rapport à un profile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        <profiles>
            <profile>
                <id>dev</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                    <property>
                        <name>env</name>
                        <value>recette</value>
                    </property>
                </activation>
                ... Mettre les spécificités du profile ici ...
            </profile>
    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 confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Par défaut
    Je viens de trouver ça :
    http://maven.apache.org/guides/mini/...ironments.html


    # environment.properties - This is the default configuration and will be packaged in the artifact by default.
    # environment.test.properties - This is the variant for the test environment.
    # environment.prod.properties - This is basically the same as the test variant and will be used in the production environment.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     <profiles>
       <profile>
         <id>test</id>
         <build>
           <plugins>
             <plugin>
               <artifactId>maven-antrun-plugin</artifactId>
               <executions>
                 <execution>
                   <phase>test</phase>
                   <goals>
                     <goal>run</goal>
                   </goals>
                   <configuration>
                     <tasks>
                       <delete file="${project.build.outputDirectory}/environment.properties"/>
                       <copy file="src/main/resources/environment.test.properties"
                             tofile="${project.build.outputDirectory}/environment.properties"/>
                     </tasks>
                   </configuration>
                 </execution>
               </executions>
             </plugin>
             <plugin>
               <artifactId>maven-surefire-plugin</artifactId>
               <configuration>
                 <skip>true</skip>
               </configuration>
             </plugin>
             <plugin>
               <artifactId>maven-jar-plugin</artifactId>
               <executions>
                 <execution>
                   <phase>package</phase>
                   <goals>
                     <goal>jar</goal>
                   </goals>
                   <configuration>
                     <classifier>test</classifier>
                   </configuration>
                 </execution>
               </executions>
             </plugin>
           </plugins>
         </build>
       </profile>
     
       .. Other profiles go here ..
     
     </profiles>
    1. It configures the antrun plugin to execute the run goal in the test phase where it will copy the environment.test.properties file to environment.properties.
    2. It will configure the test plugin to skip all tests when building the test and production artifacts. This is useful as you probably don't want to run tests against the production system
    3. It configures the JAR plugin to create an "attached" JAR with the "test" classifier.

    To activate this profile execute mvn -Ptest install and maven will execute the steps in the profile in addition to the normal steps. From this build you will get two artifacts, "foo-1.0.jar" and "foo-1.0-test.jar". These two jars will identical.



    Et ça -> http://maven.apache.org/guides/intro...-profiles.html

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/01/2014, 10h53
  2. [Integration] externaliser log4j.properties pour chaque environnement
    Par matjap dans le forum Spring
    Réponses: 3
    Dernier message: 19/06/2009, 17h12
  3. Réponses: 7
    Dernier message: 29/02/2008, 19h23
  4. Réponses: 7
    Dernier message: 05/01/2007, 14h14
  5. [Composants] TRichEdit: Une police pour chaque ligne
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/03/2003, 15h59

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