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 :

Nom de dossier avec un dollar


Sujet :

Maven Java

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Septembre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2
    Par défaut Nom de dossier avec un dollar
    Bonjour,
    J'ai un problème en définissant un nom de dossier dans un plugin de mon pom. En effet celui-ci contient dans son nom une properties maven (${project.version}) que je ne veux pas voir remplacée car étant partie intégrante du nom de dossier. J'ai essayé les anti-slash, les escapeString... rien n'y fait, quelqu'un aurait-il une idée pour résoudre ce problème ?
    Voilà la partie concernée de mon pom :

    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1</version>
    <configuration>
    <escapeString>\</escapeString>
    <webResources>
    <resource>
    <directory>src/main/webapp/gui-${project.version}</directory>
    <includes>
    <include>**/*</include>
    </includes>
    <filtering>true</filtering>
    <targetPath>gui-${project.version}</targetPath>
    </resource>
    </webResources>
    </configuration>
    </plugin>
    ...

  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
    Hum, voilà une bien étrange façon de nommer ses répertoires. Y a-t-il une vraie raison d'avoir ce genre de chose ? Personnellement, si je vois un tel nom de répertoire, j'aurais plutôt tendance à penser qu'il y a eu un souci lors du build de ce répertoire...

    Pour éviter que Maven ne remplace la propriété par sa valeur, tu peux essayer de le feinter en utilisant une autre propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <properties>
        <fake-property>{project.version}</fake-property>
    </properties>
    ...
    <directory>src/main/webapp/gui-$${fake-property}</directory>
    Attention, si tu mets <fake-property>${project.version}</fake-property>, alors la valeur de la propriété fake-property vaudra bien la version de ton pom. C'est pour ça que la propriété directory a 2 $...

    Pas sûr que ça marche, mais à problème bizarre, solution bizarre
    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
    Nouveau candidat au Club
    Inscrit en
    Septembre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2
    Par défaut
    Merci pour la réponse. Malheureusement ça ne marche pas, Maven fait le remplacement récursivement j'ai bien l'impression.

    Le but d'avoir un dossier avec ce nom est d'avoir toujours le même nom de dossier sur nos postes en local afin de se simplifier la vie mais d'avoir sur la production un nom de dossier qui change à chaque version (et chaque compilation Maven) pour des problématiques de cache.

  4. #4
    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
    Dans ce cas, autant utiliser les profiles. Dans ta configuration du plugin war, tu mets ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <directory>${the-directory}</directory>
    Ensuite, tu actives tel ou tel profile selon que tu sois en local ou que tu construises le WAR pour la prod:

    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
        <profiles>
            <!-- Development -->
            <profile>
                <id>dev</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                    <property>
                        <name>env</name>
                        <value>dev</value>
                    </property>
                </activation>
                <properties>
                    <the-directory>src/main/webapp/gui</the-directory>
                </properties>
            </profile>
     
            <!-- Production -->
            <profile>
                <id>prod</id>
                <activation>
                    <activeByDefault>false</activeByDefault>
                    <property>
                        <name>env</name>
                        <value>prod</value>
                    </property>
                </activation>
                <properties>
                    <the-directory>src/main/webapp/gui-${project.version}</the-directory>
                </properties>
            </profile>
    Ainsi, quand tu buildes en Production, le nom du répertoire sera bien changé en src/main/webapp/gui-XXX (XXX étant la version du pom.xml). Tu actives ce profile simplement en faisant mvn ... -Denv=prod (tu définis la variable env à prod) ou en utilisant mvn ... -Pprod (tu actives explicitement ce profil).
    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

Discussions similaires

  1. [Débutant] Recuperer seulement le nom des dossiers avec GetDirectories
    Par tardmonkey dans le forum VB.NET
    Réponses: 5
    Dernier message: 09/01/2013, 13h42
  2. [Batch] Recherche documents puis copie avec nom du dossier
    Par Vincss dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 19/05/2010, 10h30
  3. Nom de dossier avec espace à la fin
    Par Gui13 dans le forum Windows 7
    Réponses: 3
    Dernier message: 10/05/2010, 19h23
  4. Réponses: 2
    Dernier message: 25/03/2010, 11h21
  5. Nom de dossier avec espace
    Par cincap dans le forum Débuter
    Réponses: 5
    Dernier message: 19/11/2007, 14h59

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