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 :

utilisation de profile + multi-module + javadoc


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 32
    Par défaut utilisation de profile + multi-module + javadoc
    Bonjour tout le monde.

    J'ai lu plusieurs postes concernant ces trois thèmes de maven mais finalement je ne comprends pas suffisamment pour obtenir le résultat que je cherche.

    J'ai un pom qui déclare plusieurs modules.
    Les développeurs l'utilisent pour compiler, faire un jar et une app quotidiennement mais à certaines dates il faut que je puisse:
    a) générer la java doc pour tous les modules
    b) faire sur 1 des modules un assembly différent de celui des développeurs

    Je pense donc que faire un profile admin est la bonne idée.

    pour a) : j'utilise maven-javadoc avec le goal jar mais la javadoc du module A écrase celle du module B et ainsi de suite (dans l'ordre de déclaration dans le pom) donc à la fin je n'ai qu'une javadoc

    pour b) : comment indiquer au module qu'il doit utiliser un maven-assembly spécifique au profil?

    Si quelqu'un a une idée... merci

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

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    a) Pourquoi n'utilises-tu pas simplement la génération du site par Maven (commande mvn site) ? Ce site inclut également la Javadoc.

    b) Il te suffit de déclarer le plugin assembly dans la définition du profile :

    Code xml : 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
        <profiles>
            <profile>
                <id>admin</id>
                <activation>
                    <activeByDefault>false</activeByDefault>
                </activation>
                <build>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-assembly-plugin</artifactId>
                            <version>2.2-beta-4</version>
                            <configuration>
                                <descriptors>
                                    <descriptor>mon-descriptor.xml</descriptor>
                                </descriptors>
                            </configuration>
                            <!-- Attach the creation of the assembly to the package phase. -->
                            <executions>
                                <execution>
                                    <id>assemble</id>
                                     <phase>package</phase>
                                     <goals>
                                        <goal>single</goal>
                                    </goals>
                                </execution>
                            </executions>
                        </plugin>
                    </plugins>
                </build>
            </profile>
        </profiles>

    Il te suffit simplement de lancer la commande mvn clean install -Padmin pour créer ton assembly (dans mon exemple, le plugin assembly est attaché à la phase package). Un outil d'intégration continue - Hudson par exemple - sera le bienvenu pour réaliser ce type de tâche de façon périodique (chaque nuit, chaque week-end...)
    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 averti
    Inscrit en
    Septembre 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 32
    Par défaut
    Bonjour,

    J'ai pris le temps d'essayer avant de te répondre romaintaz.
    A la base je voulais faire juste la javadoc et non pas tout le site: d'où l'utilisation du maven-javadoc-plugin.
    Cela dit pour le moment j'ai toujours un problème avec les sites car il n'y a pas la javadoc générée.

    Pour l'assembly mon problème (je crois) par rapport à la solution que tu proposes c'est que le plugin assembly du profile va affecter tous les modules alors que je cherche à modifier un seul assembly pour un module.
    Dans ce cas la question serait peut-être pourquoi ne pas directement lancer la commande sur le pom de ce module et faire un profile à son niveau...parce que je trouve ça pas pratique.

    Peut-on donc modifier à partir d'un pom le comportement d'un des plugin d'un de ces modules? ou faire en sorte que la déclaration d'un plugin dans un profile puisse remplacer un plugin dans le module?

    Pas forcément clair l'affaire...

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

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Je n'ai pas tout saisi sur ton histoire de module, mais rien ne t'empêche de définir le profile dans un sous-module et non dans le pom.xml parent.

    Du coup, tu places mon exemple XML dans le pom.xml du module en question, et ainsi l'assembly ne sera utilisé que sur ce module...

    Quant à ton problème de Javadoc, si on n'utilise pas le plugin site... As-tu essayé le goal aggregator ? Visiblement c'est fait pour répondre à ton problème...
    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. Réponses: 0
    Dernier message: 07/04/2013, 20h28
  2. Utilisation du modèle multi module
    Par kanzarih dans le forum MVC
    Réponses: 19
    Dernier message: 27/04/2009, 11h44
  3. Projet multi-modules, génération de la javadoc
    Par hel22 dans le forum Maven
    Réponses: 2
    Dernier message: 14/11/2007, 11h39
  4. Réponses: 4
    Dernier message: 18/05/2006, 09h20
  5. Réponses: 4
    Dernier message: 24/08/2005, 14h09

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