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 :

[Maven2][xdoclet-ejbdoclet] Pb sur un projet multi modules


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Par défaut [Maven2][xdoclet-ejbdoclet] Pb sur un projet multi modules
    Bonjour à tous !

    J'ai un problème que je n'ai pas encore réussi à résoudre malgrés de nombreuses tentatives. Je m'en remet à vous pour ce soir :

    J'ai un projet multi module contenant entre autres 3 ejb. J'utilise Xdoclet (ejbdoclet) pour générer les EJB mais j'ai le soucis suivant :

    -si je lance la generation des sources et la compilation séparémment pour chaque EJB, pas de pb.
    - si je lance la même tâche sur l'ensemble des modules, ça fonctionne très bien pour le premier EJB mais ça foire pour les suivants --> les classes générées le sont dans le target du premier EJB ! Et pourtant, les descripteurs de déploiement sont générés au bon endroit !

    Voici par exemple un pom d'un de mes artifact EJB :
    <?xml version="1.0" encoding="UTF-8"?>
    <project>
    <parent>
    <artifactId>MONARTIFACTPARENT</artifactId>
    <groupId>MONGROUPID</groupId>
    <version>1.0-0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>MONARTIFACTEJB</artifactId>
    <name>nom du module</name>
    <version>1.0-0-SNAPSHOT</version>
    <packaging>ejb</packaging>
    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <configuration>
    <generateClient>true</generateClient>
    </configuration>
    </plugin>
    <plugin>
    <artifactId>xdoclet-maven-plugin</artifactId>
    <groupId>org.codehaus.mojo</groupId>
    <executions>
    <execution>
    <id>xdoclet3</id>
    <phase>generate-sources</phase>
    <goals>
    <goal>xdoclet</goal>
    </goals>
    <configuration>
    <tasks>
    <ejbdoclet

    destdir="${project.build.directory}/generated-sources/xdoclet"
    verbose="true"
    excludedTags="@author,@version" force="true"

    mergedir="${project.build.directory}/merge-dir">

    <fileset

    dir="${project.build.sourceDirectory}" includes="**/*.java" />

    <homeinterface />
    <localinterface />
    <localhomeinterface />
    <remoteinterface />

    <deploymentdescriptor

    destdir="${project.build.outputDirectory}/META-INF" />

    <jboss version="3.2"
    xmlencoding="UTF-8"

    destdir="${project.build.outputDirectory}/META-INF" />
    </ejbdoclet>

    </tasks>
    </configuration>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>
    </project>
    Visiblement, la variable ${project.build.directory} reste positionnée sur le premier MavenProject (celui du premier EJB), alors que ${project.build.outputDirectory} est bien mis à jour...

    J'ai essayé en sortant la partie configuration de la balise execution, en mettant la configuration dans le pom parent, mais j'ai systématiquement le même comportement.

    A force, je n'y vois plus rien, pouvez-vous m'aider ?

    Merci d'avance !
    Amicalement,
    Jibee.

  2. #2
    Membre confirmé

    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Par défaut
    Bonjour à tous !

    J'ai trouvé le moyen de faire fonctionner le tout, je rajoute l'attribut destdir à chaque interface :

    <homeinterface destdir="${project.build.directory}/generated-sources/xdoclet"/>
    <localinterface destdir="${project.build.directory}/generated-sources/xdoclet"/>
    <localhomeinterface destdir="${project.build.directory}/generated-sources/xdoclet"/>
    <remoteinterface destdir="${project.build.directory}/generated-sources/xdoclet"/>
    Ca ne me semble quand même être un bug, ou un comportement innatendu non ? qu'en pensez-vous ?

  3. #3
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    Oui, j'ai exactement le même bug, et je te remercie vraiment pour cette solution.

    Mais elle ne semble que partielle. Car les dépendances attribuées restent celles du premier EJB.

  4. #4
    Membre confirmé

    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Par défaut
    Hello !

    Peux-tu être plus précis quant aux autres pb que tu rencontres (dépendances) ?

    Merci !
    JB

  5. #5
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    J'ai trois projets à EJBs à générer en séquence depuis un projet services


    services
    --- A
    <dependencies>
    dependances requises pour compiler A
    </dependencies>

    ---- B
    <dependencies>
    dependances requises pour compiler B
    </dependencies>

    ---- C
    <dependencies>
    dependances requises pour compiler C
    </dependencies>


    Si j'exécute en trois commandes distinctes
    mvn A
    mvn B
    mvn C

    (mvn A = une simplification pour dire que je tape la commande: c:\A>mvn install) je n'aurais aucun problème.

    si je lance un
    mvn services
    je rencontre le problème que tu décris, mais ce n'est pas le seul.

    La génération des sources pour B et C, xdoclet la fera en mettant en ligne les dépendances de A, et non celles de B et C.


    voici le résultat d'un mvn B, qui se passe bien.
    [INFO] Initializing DocletTasks!!!
    [INFO] Executing tasks
    25 mai 2007 11:20:30 xdoclet.XDocletMain start
    INFO: Running <deploymentdescriptor/>
    25 mai 2007 11:20:31 xdoclet.XDocletMain start
    INFO: Running <remoteinterface/>
    Generating Remote interface for 'MonBean'.
    25 mai 2007 11:20:31 xdoclet.XDocletMain start
    INFO: Running <homeinterface/>
    Generating Home interface for 'MonBean'.
    25 mai 2007 11:20:31 xdoclet.XDocletMain start
    INFO: Running <jboss/>
    [INFO] Executed tasks


    Voici celui d'un mvn service, quand il arrive à la hauteur de la même génération, celle du projet B.
    [INFO] Initializing DocletTasks!!!
    [INFO] Executing tasks
    25 mai 2007 11:21:56 xdoclet.XDocletMain start
    INFO: Running <deploymentdescriptor/>
    25 mai 2007 11:21:56 xdoclet.XDocletMain start
    INFO: Running <remoteinterface/>
    Generating Remote interface for 'MonBean'.
    25 mai 2007 11:21:56 xdoclet.XDocletMain start
    INFO: Running <homeinterface/>
    Generating Home interface for 'MonBean'.
    25 mai 2007 11:21:56 xdoclet.XDocletMain start
    INFO: Running <jboss/>
    WARNING: Some classes refer to other classes that were not found among the sources or on the classpath.
    (Perhaps the referred class doesn't exist? Hasn't been generated yet?)
    The referring classes do not import any fully qualified classes matching these classes.
    Since at least one package is imported, it is impossible for xjavadoc to figure out
    what package the referred classes belong to. The classes are:
    MonBean --> InformationsClient qualified to services.InformationsClient

    [INFO] Executed tasks

    puis, il échouera ultérieurement dans la compilation, d'avoir fait un renommage de package qu'il ne fallait pas.

  6. #6
    Membre confirmé

    Inscrit en
    Août 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Août 2006
    Messages : 93
    Par défaut
    Ok merci pour tes précisions.
    En général, je met les dépendances dans le projet parent, voilà pourquoi je n'ai pas rencontré ton pb.

    @+

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

Discussions similaires

  1. "inherit" sur le site d'un projet multi-modules
    Par PurpleOwl dans le forum Maven
    Réponses: 2
    Dernier message: 30/04/2008, 15h48
  2. Projet multi-modules, génération de la javadoc
    Par hel22 dans le forum Maven
    Réponses: 2
    Dernier message: 14/11/2007, 11h39
  3. Réponses: 7
    Dernier message: 03/04/2007, 01h10
  4. [Continuum] projet multi-modules +authentification serveur
    Par rseM2 dans le forum Intégration Continue
    Réponses: 13
    Dernier message: 15/02/2007, 17h28
  5. BUILD ERROR sur création d'un projet multi-modules
    Par elitost dans le forum Maven
    Réponses: 1
    Dernier message: 28/08/2006, 15h23

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