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 :

Projet Multi-module et interdépendances


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Par défaut [RESOLU] Projet Multi-module et interdépendances
    Bonjour à tous,

    j'ai un projet multi-module ayant la structure suivante:

    1 module père P avec 2 modules fils F1 et F2, et avec F2 qui possède F1 comme dépendance , en clair:

    pom.xml de P:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    <modules>
        <module>F1</module>
        <module>F2</module>
    </modules>
    ...

    pom.xml de F1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    <parent>
        <artifactId>P</artifactId>
    </parent>
    ...
    pom.xml de F2+section de construction du jar)
    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
     
    ...
    <parent>
        <artifactId>P</artifactId>
    </parent>
    ...
    <dependencies>
        <dependency>
            <artifactId>F1</artifactId>
    	<version>${project.version}</version>		
        </dependency>
        ...
    </dependencies>
    ...
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
           <archive>
    	   <manifest>
    	       <addClasspath>true</addClasspath>
                   <classpathPrefix>lib/</classpathPrefix>
    	       <mainClass>ma.classe.dans.F2</mainClass>
    	   </manifest>
          </archive>
        </configuration>
    </plugin>
    ...
    La partie qui pose problème est la construction du jar avec maven-jar-plugin en effet le fichier "META-INF" du jar généré ne contient pas de référence au jar F1...

    Merci d'avance pour votre aide !




    Note:

    J'ai un problème similaire lorsque j'ajoute la section suivante dans mon fichier d'assembly:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
            <useProjectArtifact>false</useProjectArtifact>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
    L'erreur est de même liée à la dépendance de F2 à F1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] 
    Failed to create assembly: Error adding file 'mon.package:F1:jar:0.0.1-SNAPSHOT' to archive: C:\XXXX\P\F1\target\classes isn't a file.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Concernant le fichier META-INF/MANIFEST.MF créée par le maven-jar-plugin, ta configuration est correcte.
    Il doit crée les entrées suivantes:
    Main-Class: ma.classe.dans.F2
    Class-Path: lib/F1l.jar

    Concernant ton assembly, peut-tu donner le contenu complet de ton fichier d'assembly.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Par défaut
    Malheureusement, le jar créé pour F2 ne créé pas de d'entrée (dans son META-INF) pour F1.

    Concernant l'assembly:

    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
    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
        <id>dist</id>
     
        <formats>
            <format>dir</format>
        </formats>
     
        <dependencySets>
            <dependencySet>
              <outputDirectory>lib</outputDirectory>
              <useProjectArtifact>false</useProjectArtifact>
              <scope>runtime</scope>
            </dependencySet>
        </dependencySets>
     
        <fileSets>
            <fileSet>
              <outputDirectory>/</outputDirectory>
              <directory>target</directory>
              <includes>
                <include>*.jar</include>
              </includes>
            </fileSet>
            <fileSet>
              <outputDirectory>log</outputDirectory>
              <directory>log</directory>
            </fileSet>
        </fileSets>
     
     
    </assembly>

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Par défaut
    Bon ben en utilisant directement maven en ligne de commande tout fonctionne.

    Par contre avec le plugin eclipse, j'ai toujours toutes ces erreurs.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Heureux d'entendre que tout fonctionne en ligne de commande.

    Concernant Eclipse, je ne recommanderais jamais assez d'être prudent dans l'utilisation de Maven depuis Eclipse.
    La dernière version du plugin m2eclipse (0.10.0) a grandement amélioré les choses. Néanmoins, de mon point de vue, il faut garder en tête que Maven est un outil d'intégration pour la construction de son application alors que Eclipse est un outil proposant un environnement intégré pour faciliter le développement.
    Les deux outils n'ont pas été conçu pour fonctionner ensemble. Ainsi, l'intégration des deux en un, n'est pas évidente.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Par défaut
    Effectivement après avoir vu que ça fonctionnait en ligne de commande, j'ai upgradé le plugin Eclipse et tout est rentré dans l'ordre.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/04/2008, 14h42
  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