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 :

Probleme de liens sur un site Multi-modules


Sujet :

Maven Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 33
    Points : 36
    Points
    36
    Par défaut Probleme de liens sur un site Multi-modules
    Hello,

    Je souhaite generer un site pour un projet multimodule.

    L'arborescence du projet se décompose ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    - aaa
         - mod1
         - mod2
    - aaa est le projet principal. Il contient le pom.xml pere dont tous les sous composants heritent. il a un packaging pom
    - mod1 et mod2 sont des modules enfants de aaa avec un packaging jar.

    au niveau de la generation du site pour chaque module le path est celui par defaut à savoir mod1/target/site.

    Lorsque je genere le site, le menu généré (grâce au <menu ref="modules"/> du site.xml) comporte automatiquement un lien sur les modules (cool) mais avec des liens invalides (uncool). Ainsi au lieu de générer le lien sur le module sur le chemin aaa/mod1/target/site/index.html, le lien généré est sur aaa/target/site/mod1/index.html.

    J'ai donc contourné le problème en changeant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <menu ref="modules"/>
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <menu name="modules">
       <item name="mod1" href="file:///${basedir}/mod1/target/src" />
    </menu>
    Ce qui est bien car ainsi le lien généré est correct. Le problème est que alors ce lien est hérité par les sites enfants.

    Voici donc mes questions :
    1 - Comment configurer mes site.xml parent/enfants pour que les liens sur les sous-modules générés automatiquement soient corrects ?
    2 - Comment faire pour qu'un lien dans le site parent ne soit pas hérité dans le menu du site enfant ?

    Merci de votre retour.

  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
    Points : 7 275
    Points
    7 275
    Par défaut
    Bonjour,

    Le problème que tu rencontres n'est pas vraiment un problème.
    Quand tu construis le site pour un projet multimodules, tous les sites et sous sites vont se retrouver dans les répertoires projet/target/site. Du coup, les liens sont effectivement inopérants sur le site du projet parent.
    Pour que tout fonctionne correctement, il faut déployer le site quelque part, grâce à la commande mvn site-deploy.

    Tu définiras l'endroit où devra être déployé le site dans le pom.xml :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ...
        <distributionManagement>
            <site>
                <id>website</id>
                <url>
                    ... (chemin où déployer le site)
                </url>
            </site>
        </distributionManagement>
    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é Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    Si tu veux déployer ton site en local sur ton pc, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mvn site:stage -DstagingDirectory=c:\dossierTemporaire
    Et ainsi tu pourras tester facilement les liens
    Pensez au tag
    Mon blog Tutoriels et Astuces en Java : http://emmanuelpierre.free.fr/blog/index.php?

  4. #4
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Pour information, il semble que ce soit mieux de déployer son site en local via la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mvn site:deploy -Dsite.deployment.url=file:pathToMyStagingDirectory
    plutôt que par le staging
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mvn site:stage -DstagingDirectory=pathToMyStagingDirectory
    En effet, le staging a parfois des comportements différents que le site:deploy et est donc moins sûr. Cf. Site staging versus local deploy.

    Rémy

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 33
    Points : 36
    Points
    36
    Par défaut
    Bonjour,

    Merci pour le retour - le staging repond tout à fait à mon probleme.

    Note : j'ai remarqué que le staging fonctionnait bien que si on lui donnait exlicitelment un staging directory. Dans le staging directory par defaut (staging) il n'aggrege pas les sites multi-modules.

    En tout cas : merci !

  6. #6
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Effectivement le staging fonctionne bien pour certains contextes mais malheureusement par pour tous. On a par exemple eu des différences avec l'internationalisation avec plusieurs langues.

    Rémy

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/04/2008, 14h42
  2. [SITE] Conceptualiser un site multi modules.
    Par proner dans le forum Maven
    Réponses: 7
    Dernier message: 29/10/2007, 14h14
  3. Probleme de liens sur bouton
    Par LaureD dans le forum Flash
    Réponses: 20
    Dernier message: 18/01/2007, 14h26
  4. lien sur +ieurs site
    Par amika dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/02/2006, 17h59
  5. Probleme applet java sur mon site
    Par halo90 dans le forum Applets
    Réponses: 5
    Dernier message: 01/02/2006, 16h18

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