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 :

Maven et les scopes


Sujet :

Maven Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Par défaut Maven et les scopes
    Bonjour,
    Je débute avec Maven et après lecture des docs dispo sur le site, je me pose qques questions :

    1. Quelle difference y a t il entre les scopes "compile" et "provided" dans le cas de la création d'un JAR ?

    En effet j'avais compris que quand on utilisait une scope "compile" les JAR des dépendances étaient inclues dans l'artifact final.
    Et quand on utilise le scope "provided" et bien les JAR des dependances sont utilisés lors du build mais ne sont pas inclues et sont apportées par la suite (JDK, container, ...).
    Peut être est ce la cas simplement pour les WAR et EAR ?

    Quand je build le JAR de mon Artifact et bien, que mes dep soient en scope "Compile" ou "Provided" elles ne sont pas disponibles dans le JAR final.

    Ex : Pour mon artifact j'ai besoin de commons-digester et bien dans le JAR final commons-digester n'est pas présent.


    2. Si :
    * dans artifact1 je fais ref à la version 1 d'une dépendance
    * dans artifact2 je fais ref à la version 2 d'une dépendance
    * Que artifact1 et artifact2 sont utilisés dans un projet.
    Quelle version de dépendance est utilisée par projet ?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    1) uniquement pour war et ear. Les jar son systématiquement dénués de dépendances. Sinon ce serait la catastrophe:
    A dépend de B et C,
    B dépend de D, X,
    C Dépend de D,
    D dépend de X
    -> a se retrouverais gonflé avec B,C,deux fois D, deux fois X :s

    Les war / ear ne sont par définition pas utilisé comme librairies => là le problème ne se pose pas.
    Note qu'il existe des plugins maven pour faire des war avec les dépendances, des installers, etc...

    2) maven a plusieurs règle. D'abord, il regarde la provondeur de la dépendance:
    A dépend de X, Y
    X dépend de Z
    Y Dépend de J version 2
    Z dépend de J version 1
    -> version 2 car la plus haute dans l'arbre de dépendance.
    En cas d'égalité de profonceur (ton exemple), c'est la première dépendance rencontrée dans le pom qui jouera.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Par défaut
    merci pour ces infos.
    Concernatn les JAR c'est ce dont je me doutait.

    Par contre pour les versions c'est sioux.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la résolution des conflits entre les versions es expliqué en détails sur le site de maven, quelque part

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    2) maven a plusieurs règle. D'abord, il regarde la provondeur de la dépendance:
    A dépend de X, Y
    X dépend de Z
    Y Dépend de J version 2
    Z dépend de J version 1
    -> version 2 car la plus haute dans l'arbre de dépendance.
    En cas d'égalité de profonceur (ton exemple), c'est la première dépendance rencontrée dans le pom qui jouera.
    Suite à ton exemple : Cela signifie que je devrais apporter la version 2 de J au niveau du projet ?
    Mais Z peut avoir des incompatibilités avec cette version 2.
    Faut il alors que je build Y avec J en V1 pour que la version commune devienne la 1 et comme ca plus de pb pour Z ?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    a traiter au cas par cas, maven ou pas, c'est toujours un problème quand tu amène plusioeurs librairies qui ont des dépendances communes mais en versions différentes dans un projet. Il afut toujours finir par essayer de trouver une version qui ne pose pas de problème

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Par défaut
    ok merci pour ces infos

Discussions similaires

  1. [Sonar] [Maven] Utiliser les règles définies dans un pom
    Par Krishtov dans le forum Qualimétrie
    Réponses: 0
    Dernier message: 11/10/2011, 17h42
  2. [Cobertura] [Maven] inclure les tests d'intégration dans les rapports de qualité
    Par Tcharl dans le forum Qualimétrie
    Réponses: 1
    Dernier message: 02/05/2011, 21h33
  3. Maven et les filtres de licenses
    Par Crazyfaboo dans le forum Maven
    Réponses: 0
    Dernier message: 29/07/2010, 11h00
  4. Hudson/Sonar/Maven et les projets multi répertoires de sources
    Par onlytoine dans le forum Intégration Continue
    Réponses: 6
    Dernier message: 07/11/2008, 16h08
  5. Dépendances maven pour les jar jasperserver
    Par mbinte dans le forum Jasperserver
    Réponses: 1
    Dernier message: 09/09/2008, 16h13

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