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] et gestions des dépendances


Sujet :

Maven Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 59
    Points
    59
    Par défaut [Maven2] et gestions des dépendances
    Voilà, je suis completement dans la brume en ce qui concerne la gestions des dépendances de Maven. Et surtout en ce qui concerne les notions de parent et multimodules.

    Dans mon cas, j'ai un projet au sens large du terme. Ce projet est composé de sous-projets. (Modules??). Or voilà, chacun de ses sous projets peut-être dépendant d'un à n autres sous projets.

    J'ai donc un fichier pom.xml par sous projet. Maintenant, pour spécifier les dépendances d'un sous projet envers 1 à N autres sous projets, je ne sais pas trop comment m'y prendre. J'ai essayé avec les <dependencies>; mais le problème est qu'il va rechercher les fichiers jars générés par les projets dépendants dans le repository. Donc il faudrait avoir fait un install des projets dépendants auparavant. Or voilà, je recherche un système qui permetrait de faire tout 'en un seul coup', à la place de faire un install des projets dépendants à la 'main'

    Donc disons que j'ai un projet genéral 'test' celui ci est composé de plusieurs sous projets :
    -A
    -B
    -C
    -D
    Le projet C est dépendant de D,
    le projet B est dépendant de C,
    et le projet A est dépendant de B et de D

    Ces sous projets, sont en fait des projets éclipses dans un workspace, et ils ne sont donc pas 'nested'.

    Ce que j'ai essayé, c'est avec les dependencies, mais il recherche l'artifact du projet dépendant sur le repository. Cependant il n'est pas crée, donc erreur.

    J'ai essayé avec les <modules> et donc le packaging pom. Mais le sous projet qui a un tel fichier pom n'est pas compilé, ni packagé.

    Y a t'il une solution à mon problème? A noter que j'ai cherché sur internet, mais je ne trouve rien de concret qui m'aide a comprendre ces histoires de dépendances avec les dépendencies, modules, et parent

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    Pour ce que j'ai pu comprendre entre temps, il me faudrait un Pom 'root' avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <packaging>pom</packaging>
    Dans lequel je declarerais tous les modules (sous projets).
    Et afin de compiler tout mon projet 'd'un seul coup je devrait executer les commandes maven depuis le répertoire du pom 'root'. Ces commandes s'exécuteraient alors pour chaque module définit dans le Pom.

    Le tag parent est utilisé dans les poms des sous projets, pour faire référence au Pom 'root'(parent). Et là si j'ai bien compris, tous ces poms 'enfanfs' (donc les poms des sous projets) peuvent hériter du pom parent.

    C'est ce que j'ai essayé de faire avec des dépendances. Dans mon pom Parent j'ai donc défini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
      </dependency>
    </dependencies> 
    <dependencyManagement>
    Et ensuite, je vais dans un de mes sous projets, et j'effectue la commande:
    Je m'attends donc à voir la Depence de Junit dans le pom de ce sous projet. Or elle n'y est pas! Est ce que j'ai mal compris la notion "d'héritage"
    où est je fait une erreur qque par ?

    **EDIT**********
    J'ai fait une erreur, je me suis trompé dans l'editon des fichiers pom.
    En effet, l'héritage fonctionne bel et bien.
    ***************

  3. #3
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Vu l'ensemble des questions que tu poses sur ce forum, je ne peux que de te conseiller de lire le livre Better Build with Maven 2 qui est gratuit
    http://www.mergere.com/m2book_download.jsp

    Les trois premiers chapitres sont très bien fait et introduisent les différents concepts avec leur sémantique. Tu pourras ainsi comprendre que dependencyManagement n'est pas là pour inclure une dépendance dans tes modules fils mais plutôt pour définir une configuration par défaut valable pour tous tes modules fils qui déclarent la dépendance en question.

    Rémy

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    Salut merci pour le conseil, mais je l'ai déjà téléchargé depuis un petit temps. Il s'avère pratique. Cependant je n'ai pas crompris certains concepts qui ne sont pas expliqués assez en détails (à mon gout).

    En ce qui concerne l'héritage et les tags <parent> et <module> et <dependencyManagement> je pense en avoir saisi l'utilité

    En ce moment j'essaie de faire un 'double' héritage (comme dans le livre 'livre Better Build with Maven 2'), mais ce ne semble pas trop fonctionner
    (voir http://www.developpez.net/forums/sho...d.php?t=284684)

    Sinon, si j'ai bien compris l'histoire du pom parent, avec comme packaging pom;
    Un tel fichier n'est jamais placé dans un projet où il faut compiler des sources, mais fait plutot office de 'descripteur de build' ?

Discussions similaires

  1. Gestion des dépendances, build et Eclipse RCP
    Par rozwel dans le forum Eclipse Platform
    Réponses: 8
    Dernier message: 08/03/2010, 18h47
  2. Gestion des dépendances
    Par hoshi dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 24/07/2007, 18h39
  3. [RPM] gestion des dépendances sous RedHat
    Par Longrais dans le forum Administration système
    Réponses: 3
    Dernier message: 16/04/2007, 20h28
  4. gestion des dépendances
    Par aemag dans le forum Oracle
    Réponses: 1
    Dernier message: 27/02/2007, 11h03
  5. gestion des dépendances
    Par zola dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/05/2006, 13h34

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