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 :

[maven2] profile / environement


Sujet :

Maven Java

  1. #1
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 72
    Points
    72
    Par défaut [maven2] profile / environement
    Si j'ai un projet MonProjet
    Et deux environnements : Test et Recette.

    Je veux générer deux versions de mon projet :
    MonProjet-test-1.0-SNAPSHOT
    MonProjet-recette-1.0-SNAPSHOT

    J'utilise les profiles pour modifier l'archivename :
    Un mvn install –P test
    Me donne MonProjet-test-1.0-SNAPSHOT dans le répertoir target mais dans mon repository local j'ai MonProjet-1.0-SNAPSHOT.

    Une autre piste est d’utiliser les assembly. Mais comment intéragir sur l’achiveId le versionId

    Une petite idée ?

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    as-tu essayé de "jouer" avec le finalName ?
    ...
    <profiles>
    <profile>
    <id>test</id>
    ...
    <build>
    <finalName>${project.artifactId}-test-${project.version}</finalName>
    ...
    </build>
    </profile>
    <profile>
    <id>recette</id>
    ...
    <build>
    <finalName>${project.artifactId}-recette-${project.version}</finalName>
    ...
    </build>
    </profile>
    ...
    </profiles>
    ...

  3. #3
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par smanciot
    as-tu essayé de "jouer" avec le finalName ?
    Heu, oui, je voulais dir finalName et pas archiveName.

    A la fin de l'install il me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [INFO] Installing C:\MonProjet\target\MonProjet-local-1.0-SNAPSHOT.jar to E:\MonReposiTory\com\monapp\MonProjet\1.0-SNAPSHOT\MonProjet-1.0-SNAPSHOT.jar

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    je te propose alors d'utiliser un artifactId "dynamique"

    utilise alors ceci :

    <project>
    ...
    <artifactId>MonProjet-${monProfile}</artifactId>
    ...
    </project>

    avec la propriété monProfile définie différemment dans tes différents profiles (test, dev ...)

  5. #5
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par smanciot
    je te propose alors d'utiliser un artifactId "dynamique"

    utilise alors ceci :

    <project>
    ...
    <artifactId>MonProjet-${monProfile}</artifactId>
    ...
    </project>

    avec la propriété monProfile définie différemment dans tes différents profiles (test, dev ...)

    Well done !!!!
    Cela marche... mais je préfère faire modifier la version:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <project>
    ...
    <artifactId>MonProjet</artifactId>
    <version>${monProfile}-1.0-SNAPSHOT</version>
    ...
    </project>
    Merci encore ....

  6. #6
    Membre expérimenté

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Perso, je préfère modifier la version comme ceci:
    1.0-${monProfile}-SNAPSHOT

    Ce qui donne:
    monprojet-1.0-test-SNAPSHOT
    monprojet-1.0-recette-SNAPSHOT

  7. #7
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par evenisse
    Perso, je préfère modifier la version comme ceci:
    1.0-${monProfile}-SNAPSHOT
    Effectivement cela est plus logique.

    Mais, je vais repasser à la solution de smanciot de modifier l'ArtifactId et non pas la version. Pour avoir une gestion des versions plus simple.

    Dans un autre projet je peux donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      <dependencies>
        <dependency>
          <groupId>MonGroup</groupId>
          <artifactId>MonProjet-${monProfile}</artifactId>
          <version>[0,)</version>
        </dependency>
      </dependencies>
    A expérimenter....

  8. #8
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 72
    Points
    72
    Par défaut
    Il me reste un petit problème. Si je fais un mvn install du projet, dans mon repository j’ai bien MonProjet-test-0.1-1.0-SNAPSHOT.pom (et le jar aussi). Mais le pom ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0"?><project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>MonGroup</groupId>
      <artifactId>MonProjet-${MonProfile}</artifactId>
      <version>1.0-SNAPSHOT</version>
    </project>
    Donc tous les projets qui dépendent ce celui-ci ne peuvent pas résoudre les dépendances transitives via celui-ci

    J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [WARNING] POM for 'MonGroup:MonProjet-test:pom:1.0-SNAPSHOT:compile' is invalid. It will be ignored for artifact resolution. Reason: Failed to validate POM
    (Dans mon cas, c'est un ear qui contient le projet)

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    as-tu appliquer la même logique à ton projet ear ?

    <?xml version="1.0"?><project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>MonGroup</groupId>
    <artifactId>MonProjetEAR-${MonProfile}</artifactId>
    <version>1.0-SNAPSHOT</version>
    ...
    <dependencies>
    <dependency>
    <groupId>MonGroup</groupId>
    <artifactId>MonProjet-${MonProfile}</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>
    </dependencies>
    </project>

    ce qui du reste n'est pas en contradiction avec la logique sous-jacente aux profiles

  10. #10
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par smanciot
    as-tu appliquer la même logique à ton projet ear ?
    Oui et le projet EAR trouve bien le pom dans le repository local, mais, il semble que pour maven il soit mal formé car avec une variable

  11. #11
    Membre actif Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Points : 226
    Points
    226
    Par défaut
    j'ai exactement le même probleme

    j'ai essayé de créer un profile dans mon pom.xml ainsi que dans le settings.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    <profile>
            <id>version</id>
            <properties>
                 <projet.commun.version>1.0-SNAPSHOT</projet.commun.version>
                 <xxx.projet1.version>1.2-SNAPSHOT</xxx.projet1.version>
            </properties>
            <activation>
               <activeByDefault>true</activeByDefault>
            </activation>
         </profile>
    ensuite dans mon pom.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <project>
      <modelVersion>4.0.0</modelVersion>
      <parent>
         <groupId>xx.xx.MasterPom</groupId>
         <artifactId>SuperPOM</artifactId>
         <version>1.0-SNAPSHOT</version>
      </parent>
      <groupId>xx.yy.zz</groupId>
      <artifactId>essai</artifactId>
      <packaging>pom</packaging>
      <version>${xxx.projet1.version}</version>
      <name>Mon 1er projet</name>
    quand je fais un mvn install

    j'ai bien la substitution qui s'effectue pour l'arborescence et le nom du fichier pom

    mais quand j'ouvre celui-ci, j'ai toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <project>
      <modelVersion>4.0.0</modelVersion>
      <parent>
         <groupId>xx.xx.MasterPom</groupId>
         <artifactId>SuperPOM</artifactId>
         <version>1.0-SNAPSHOT</version>
      </parent>
      <groupId>xx.yy.zz</groupId>
      <artifactId>essai</artifactId>
      <packaging>pom</packaging>
      <version>${xxx.projet1.version}</version>
      <name>Mon 1er projet</name>
    alors que j'aurai dû avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <project>
      <modelVersion>4.0.0</modelVersion>
      <parent>
         <groupId>xx.xx.MasterPom</groupId>
         <artifactId>SuperPOM</artifactId>
         <version>1.0-SNAPSHOT</version>
      </parent>
      <groupId>xx.yy.zz</groupId>
      <artifactId>essai</artifactId>
      <packaging>pom</packaging>
      <version>1.2-SNAPSHOT</version>
      <name>Mon 1er projet</name>
    j'ai fait le test en Maven 2.0.4 et 2.0.5 et ça me donne le même résultat.

    Une idée ??

    merci d'avance

Discussions similaires

  1. [PROFILER][THREAD][java.prof] outil gratuit/complet?
    Par narmataru dans le forum Général Java
    Réponses: 11
    Dernier message: 16/11/2005, 12h28
  2. compréhension du profil d'une fonction
    Par lor dans le forum MFC
    Réponses: 7
    Dernier message: 08/01/2004, 12h59
  3. C'est quoi "Profile" dans le assign du XMLGram ?
    Par Lux interior dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/02/2003, 11h37
  4. Profiler pour Java
    Par donde dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 10/02/2003, 17h36
  5. [API win32] Récupérer le répertoire d'un profile
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h38

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