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 :

Dependance entre JAR de projet


Sujet :

Maven Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Points : 108
    Points
    108
    Par défaut Dependance entre JAR de projet
    Bonjour

    J'ai un ,énorme problème, j'ai une architecture projet comme ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     -parent
        |    -projet A
        |      |- pom.xml
        |    -projet B
        |      |- pom.xml
     -pom.xml
    Les projets A et B sont mutuellement dépendants et lors de la compilation, le projet A a besoin du projet B sous forme de fichier .jar.

    Donc ce que j'ai effectué est de créer le projet B sous forme de fichier .jar (que j'ai par la suite installé dans mon repository) et d'une part et d'autre part déclarer une dépendance (dans le projet A) vers ce .jar crée.

    Tout marche mais je trouve que c'est galère. Alors j'aimerais savoir comment contourner ce problème (qui consiste à créer un jar).

    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 : 45
    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
    Si dans le pom.xml parent tu déclares les projets A et B comme des modules, alors il suffit de lancer la commande mvn clean install au niveau du projet parent, alors la compilation des 2 projets se fera sans problème. Mais tu es tout de même obligé de passer par la création d'un JAR (qui se fait automatiquement).
    Tu voudrais faire comment autrement ?
    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 régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Points : 108
    Points
    108
    Par défaut
    merci.
    Donc en effectuant un mvn clean install il me créée automatiquement le jar?

  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 : 45
    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
    Si on prend un projet structuré ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    projet
      + pom.xml
      +- sous-projet-A
      |    + pom.xml
      +- sous-projet-B
           + pom.xml
    avec, dans le pom.xml parent, ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        <modules>
            <module>sous-projet-A</module>
            <module>sous-projet-B</module>
        </module>
        ...
    alors si tu lances la commande mvn clean install au niveau du répertoire racine, Maven va en fait lancer cette même commande sur chacun des modules (l'ordre des modules est déterminé par Maven en fonction des dépendances inter modules).
    Du coup, voici les étapes réalisées par Maven 2:


    1. mvn clean install au niveau du parent.
    2. mvn clean install au niveau du sous-projet-A.
    3. Le JAR du sous-projet-A est créé, puis installé dans ton repository local.
    4. mvn clean install au niveau du sous-projet-B.
    5. Du coup, Maven utilise le JAR de sous-projet-A installé dans le repository local pour compiler sous-projet-B.
    6. Le JAR du sous-projet-B est créé, puis installé dans ton repository local.

    Si tu lances la commande mvn clean package, alors l'étape 3 ne sera pas exécutée complètement (le JAR ne sera pas copié dans le repository local).
    Du coup, l'étape 5 échouera (sauf dans le cas où une version adéquate de sous-projet-A est trouvée dans le repository local, ce qui peut arriver si tu as lancé la commande mvn clean install auparavant).

    Voilà, ça devrait être plus clair maintenant...
    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. [Jar Dependance] Outil pour voir la dépendance entre jar ?
    Par Casp dans le forum EDI et Outils pour Java
    Réponses: 0
    Dernier message: 24/09/2010, 11h11
  2. Dependances entre projets (jar et war)- Eclipse
    Par Shabata dans le forum Maven
    Réponses: 2
    Dernier message: 20/12/2009, 12h31
  3. [Ganymede] Dependance entre projet
    Par FreshVic dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 22/09/2008, 10h09
  4. dependances entre projets
    Par MASSAKA dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 19/02/2008, 23h02
  5. Réponses: 1
    Dernier message: 18/05/2007, 19h06

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