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 :

Dépendances d'un plugin sur un projet multimodules


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Dépendances d'un plugin sur un projet multimodules
    Bonjour,

    Je pars d'un projet contenant ce pom.xml (allégé) :

    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
    31
    32
    33
    34
    35
    36
    37
     
    <project>
        ...
     
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>compile-id</id>
                            <phase>process-resources</phase>
                            <configuration>
                                <tasks>
                                    ...
                                    <propertyregex .../>
                                    ...
                                </tasks>
                            </configuration>
                            <goals>
                                <goal>run</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        ...
                        <dependency>
                            <groupId>ant-contrib</groupId>
                            <artifactId>ant-contrib</artifactId>
                            <version>1.0b3</version>
                            <scope>runtime</scope>
                        </dependency>
                    </dependencies>
                </plugin>
                ...
    </project>
    Le truc important c'est de voir que j'utilise le plugin antrun avec une tâche non standard (propertyregex), et que j'ai besoin de la dépendance ant-contrib pour que cela fonctionner.
    Et cela fonctionne ! (joie)

    Mais voilà, j'ai transformé le dit projet pour le diviser en projet multi-modules, avec les modules commons, client et server.
    Le code précédent est exécuté dans le pom.xml du serveur.

    Or, j'ai également besoin d'utiliser le plugin antrun dans le module client. Les tâches y sont toutefois très simples, et je n'ai pas besoin de dépendances ici :

    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
     
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>compile-id</id>
                            <phase>process-resources</phase>
                            <configuration>
                                <tasks>
                                    <copy .../>
                                </tasks>
                            </configuration>
                            <goals>
                                <goal>run</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    Le souci, c'est que si je lance la commande mvn clean install sur le projet parent, j'obtiens, lors du traitement du serveur l'erreur m'indiquant que net/sf/antcontrib/antcontrib.properties n'est pas trouvé (qui est contenu dans la dépendance ant-contrib.jar).

    Après quelques recherches, je m'aperçois que les dépendances définies dans la configuration du plugin antrun du serveur ne sont pas utilisées.
    Si je déplace ces dépendances dans le projet client, alors cette fois-ci, l'erreur n'apparait plus, et le build se termine correctement !

    J'ai donc l'impression que le plugin antrun est configuré une seule fois pour l'ensemble des builds et donc que la configuration

    Quelle est la raison d'une telle chose ?
    Est-ce le cas quelque soit le plugin utilisé ?
    Ne peut-on pas définir des dépendances différentes pour un plugin donné, selon le module qui est en train d'être buildé ?

    Pour résoudre mon problème plus proprement, j'ai copié la liste des dépendances pour le plugin antrun dans le pom.xml parent, puis je n'ai défini que le bloc <executions> dans chaque module...
    Cela fonctionne, mais ne me plait guère...


    Pour information, j'utilise Maven 2.0.5, mais le résultat est le même avec Maven 2.0.8...
    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

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Août 2007
    Messages : 84
    Par défaut
    Certainement ce qui est décrit dans MNG-1323

  3. #3
    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
    Merci, ça a l'air d'être effectivement le même cas
    Bon, plus qu'à attendre Maven 3 alors
    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

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

Discussions similaires

  1. Projet multimodules avec plugin assembly
    Par anthony.pa dans le forum Maven
    Réponses: 3
    Dernier message: 17/11/2013, 02h05
  2. Le plugin assembly sur un projet multimodule
    Par jerems44 dans le forum Maven
    Réponses: 5
    Dernier message: 29/11/2011, 14h36
  3. [Plugin][EclipseUML] Rétro ingénierie sur gros projet
    Par Crowell dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 19/01/2008, 12h06
  4. [M2]Recherche plugin d'activité sur un projet ?
    Par elitost dans le forum Maven
    Réponses: 12
    Dernier message: 12/07/2006, 13h39
  5. [plugin] Reverse Engineering sur mon projet
    Par Tourix dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 03/07/2006, 12h57

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