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 :

Exclure des fichiers d'un war


Sujet :

Maven Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 86
    Points : 35
    Points
    35
    Par défaut Exclure des fichiers d'un war
    Bonjour.

    Imaginons la structure suivante pour une webapp jsf2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    src
    |-- main
         |-- java
              |-- Class1.java
              |-- Class2.java
              |-- Class3.java
         |-- webapp
              |-- p1.xhtml
              |-- p2.xhtml
              |-- p3.xhtml
    Dans mon war, je voudrais exclure tous les fichiers xhtml et toutes les classes, sauf p2.xhtml et Class2.

    Avec ceci :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    			<plugin>
    			    <groupId>org.apache.maven.plugins</groupId>
    			    <artifactId>maven-war-plugin</artifactId>
    			    <version>2.1</version>
    			    <configuration>
    <warSourceExcludes>p1.xhtml,p3.xhtml</warSourceExcludes>
    			    </configuration>
    			</plugin>

    j'arrive bien à n'avoir que p2.xhtml. Mais je voudrais une méthode plus 'générale' (tout exclure sauf ...).
    Et de toutes façons, pour les classes, ça ne marche pas.

    J'ai déjà essayé tout un tas de choses avec des warSourceIncludes, ... et jusqu'à présent rien ne marche vraiment.

    Qu'est-ce que je peut faire ?

    Merci.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    packagingExcludes/packagingIncludes devraient te permettre de faire ta sélection aves des regex...

    Voir ici

    A noter m2e-wtp semble avoir un bug ouvert sur le sujet...

    a+
    Philippe

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 86
    Points : 35
    Points
    35
    Par défaut
    Merci Philippe.

    Je viens d'essayer et ça fonctionne ... en partie.

    Je me base maintenant sur la structure suivante :

    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
    src
    |-- main
         |-- java
              |-- be
                   |--lab
                       |--backing
                           |-- Class1.java
                           |-- Class2.java
                           |-- Class3.java
                           |-- Class4.java
         |-- webapp
              |-- index.xhtml
              |-- p1.xhtml
              |-- p2.xhtml
              |-- p3.xhtml
              |-- folder1
                   |-- pp1.xhtml
    Pour les pages xhtml, ça marche. Je veux garder uniquement index.xhtml et p2.xhtml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %regex[(?!index|p2).*.xhtml]
    Mais n'étant pas très à l'aise avec les expressions régulières, je n'arrive pas vraiment à m'expliquer le '?' et le '.*'.

    edit : non finalement ça ne marche pas non plus comme je veux. pp1.xhtml est aussi exclu !

    Par contre pour les backing beans je n'y arrive pas. Je ne veux garder que Class2.class et Class4.class.

    J'ai bien essayé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WEB-INF/classes/**/backing/%regex[(?!Class2|Class4).*.class]
    mais ça ne fonctionne pas.

    Par contre j'arrive bien à faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WEB-INF/classes/**/backing/Class2.class]
    mais bon, là ce n'est pas ce que je veux.

  4. #4
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Dans l'exemple qui est donné

    %regex[WEB-INF/lib/log4j-(?!over-slf4j).*.jar] le (?!...) signifie une séquence non suivie de over-slf4j voir ici.
    Le .*. signifie (un car + une chaine + un car)
    Attention : le point est un indicateur pour un caractère quelconque; le * étant une séquence de 0..n caractères... bref ici cela veut dire que la version doit avoir au moins un caractère !

    Tes séquences il faut les mettre entre parenthèses par exemple (toto|titi)...

    Donc enlève tes ?! et .* cela devrait aller mieux !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 86
    Points : 35
    Points
    35
    Par défaut
    Décidément, je ne comprends rien aux expressions régulières

    Donc enlève tes ?! et .* cela devrait aller mieux !
    Heu ... faire comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %regex[(index|p2).xhtml]
    Dans ce cas ça va m'exclure index.xhtml et p2.xhtml, l'inverse de ce que je veux faire, non ?

  6. #6
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Oui oups désolé, j'avais lu l'inverse... Tu peux essayer

    %regex[webapp/(?!(index|p2)).xhtml] mais normalement les () autour de index|p2 ne sont pas nécessaire ici... Tu dois aussi vérifier ton path pour accéder à tes ressources...

    Au passage pour les ressources externes tu as la balise webRessources

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 86
    Points : 35
    Points
    35
    Par défaut
    Rien à faire ...

    Pour le path je suis sûr que le répertoire de base du <packagingExcludes> est la racine du war. La preuve, ceci marche :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <packagingExcludes>
        index.xhtml,WEB-INF/classes/be/lab/backing/Class1.class
    </packagingExcludes>

    Pour en revenir à mon problème, j'ai testé l'expression régulière dans RegexBuddy.

    Comme texte, je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    index.xhtml
    p1.xhtml
    p2.xhtml
    p3.xhtml
    folder1/pp1.xhtml
    et je constate que cette expression capture les 5 .xhtml !

    Par contre, avec :

    il capture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ndex.xhtml
    p1.xhtml
    2.xhtml
    p3.xhtml
    folder1/pp1.xhtml
    ce qui donne comme résultat qu'il exclu bien p1.xhtml,p3.xhtml, mais aussi pp1.xhtml.

    Par contre je ne comprends toujours pas comme il arrive à ce résultat ni comment arriver à ce que je veux.

    Je crois que si je veux garder un minimum de cheveux sur la tête, je vais finir par abandonner !

  8. #8
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Après réflexion...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    folder1\/(?!index|p2\.).*\.xhtml
    ou plus simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    folder1.(?!index|p2\.).*.xhtml
    mais cette dernière peut éventuellement laisser passer des faut positifs

    p2\. => sans celà p22.xhtml sera un faut positif
    \/ => '/'
    \. => '.'
    .* => toute string (même vide).

    En gros, cela:
    - doit commencer par 'folder1/'
    - pas être suivi de 'index' ou 'p2.'
    - être suivi de toute string
    - finir par '.xhtml'

Discussions similaires

  1. Include des fichiers dans un war
    Par Rémy29 dans le forum Maven
    Réponses: 5
    Dernier message: 18/04/2010, 12h17
  2. OpenFileDialog exclure des fichiers
    Par nanar21 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 15/08/2009, 10h17
  3. Peut on exclure des fichiers d'un projet
    Par coolben dans le forum Eclipse
    Réponses: 0
    Dernier message: 08/10/2008, 22h36
  4. Inclure des fichiers dans un war.
    Par RémyYves dans le forum Maven
    Réponses: 5
    Dernier message: 22/01/2008, 10h16
  5. export WAR - exclure des fichiers et / ou repertoire
    Par jokerparis dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 27/03/2007, 17h52

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