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 :

Création Plugin Maven - Reporting de conflits entre dépendances -


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de ZnhaarX
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 146
    Par défaut Création Plugin Maven - Reporting de conflits entre dépendances -
    Bonjour à tous.

    Je suis en train d'élaborer un plugin Maven afin de faire une remontée d'informations ainsi qu'un reporting explicite à l'utilisateur des conflits entre dépendances.
    N'étant pas feignant, mais n'ayant pas envi de refaire ce qui a déjà été fait, je souhaite utiliser l'existant au niveau des plugins Maven déjà implémentés.
    Je sais que Maven embarque pas mal de goal intéressants pour ce que je veux faire et je m'y suis plongé.
    Il en est ressorti que les goals suivant sont exploitables:
    • maven-help-plugin:effective-pom pour ce qui est de la remontée d'information complète quant au projet désiré
    • maven-dependency-plugin:analyze pour ce qui est des dépendances utilisées mais pas déclarées et vice versa etc.

    Voir: http://svn.apache.org/viewvc/maven/plugins/trunk/

    Mais je n'ai pas trouvé concrètement un goal qui me fairait un reporting des conflits entre dépendances alors qu'il en existe bien un (cf. mvn validate sur un projet avec deux même dépendances mais de versions différentes par exemple).
    J'ai jeté un coup d'oeil rapide sur le plugin codehaus xml-plugin-maven sans que ce soit trop probant (http://svn.codehaus.org/mojo/tags/xml-maven-plugin-1.0/).

    Il semble aussi que le plugin eclipse m2eclipse possède un onglet "Dependencies" (avec d'autres onglets "Overview"; "Effective Pom" etc.) qui, durant des conflits, affiche des messages d'erreurs assez explicite à l'utilisateur; un reporting de ce genre de message fait par un plugin perso serait mon objectif.
    J'ai commencé à regarder le code source du plugin et ce n'est pas de tout repos je dois l'avouer: http://svn.sonatype.org/m2eclipse/tags/pre-maven-3/
    J'ai trouvé quelques fonction de reporting mais ça ne correspond pas réellement à ce que je souhaite.

    Donc voilà un peu la finalité de l'histoire; donc si quelqu'un est à même de m'indiquer vers quoi me tourner je suis preneur.
    Il faut dire que ces petits SVN sont quand même bien remplis.


    Merci d'avance en tout cas.

    ZnhaarX.

    [Edit]: J'ai trouvé ceci qui semble plutôt être fortement sympathique > http://svn.apache.org/viewvc/maven/m...el/validation/

  2. #2
    Membre expérimenté Avatar de ZnhaarX
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 146
    Par défaut
    Je reviens à la charge avec un petit problème quant à l'analyse de ce que j'ai trouvé:
    http://svn.apache.org/viewvc/maven/m...el/validation/

    Ainsi si j'ai bien compris ces classes permettent de builder correctement un POM (avec le niveau de validation nécessaire). Ainsi ce qui m’intéresse serait cette méthode là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /**
         * Checks the specified (effective) model for missing or invalid values. The effective model is fully assembled and
         * has undergone inheritance, interpolation and other model operations.
         * 
         * @param model The model to validate, must not be {@code null}.
         * @param request The model building request that holds further settings, must not be {@code null}.
         * @param problems The container used to collect problems that were encountered, must not be {@code null}.
         */
        void validateEffectiveModel( Model model, ModelBuildingRequest request, ModelProblemCollector problems );
    Le fait est que pour l'utiliser dans un Mojo quelconque, il est évidemment nécessaire de définir à quoi correspondent les paramètres Model model, ModelBuildingRequest request et ModelProblemCollector problems.
    Autant sur le Model et le ModelProblemCollector j'ai pas vraiment de soucis à comprendre, autant sur le ModelBuildingRequest j'ai un peu de mal; j'ai déduis que c'était un paramétrage pour le build mais je ne suis pas vraiment sûr.

    Toujours est-il que voulant faire des tests par rapport à cette méthode, j'ai quelques petites difficultés de déclarations de ces paramètres (sachant qu'aucun d'eux ne doit être null - ce qui semble bizarre vu que le ModelProblemCollector n'est pas sensé contenir de problèmes à t0... enfin bref).

    J'en arrive à quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DefaultModelValidator modelValidator = null;
            ModelProblemCollector problemCollector = null ;
            ModelBuildingRequest buildingRequest = new DefaultModelBuildingRequest().setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0);
    // Sachant que project correspond au paramètre de type MavenProject
            modelValidator.validateEffectiveModel(project.getModel(),buildingRequest,problemCollector);
    Le problème réside dans le fait que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ModelProblemCollector problemCollector = null ;
    ne devrait pas se déclarer comme ça.
    J'ai cherché sur le net et ils parlent plutôt d'une déclaration de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultModelProblemCollector problemCollector = new DefaultModelProblemCollector( null );
    . Or moi je me retrouve avec une erreur de type : The type DefaultModelProblemCollector is not visible.
    J'ai checké le svn pour voir si la class java était toujours bien présente (au cas ou) et c'est le cas.

    Donc je suis un peu perdu par rapport à ça.
    Si certaines âmes charitables peuvent me conseiller quant à ce projet et m'aider sur ces quelques problèmes, ce serait bienvenue

    Merci d'avance.

  3. #3
    Membre expérimenté Avatar de ZnhaarX
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 146
    Par défaut
    Pour poursuivre mon monologue (), j'apporte des précisions quant à mes recherches (si un jour quelqu'un en a besoin).
    J'ai trouvé une librairie qui permet d'aller checker dans le repository que l'on souhaite, les versions disponibles pour les artifacts: AETHER
    (https://docs.sonatype.org/display/AETHER/Home)

    Donc ça m'aide à faire ce que je veux au final.
    Ça ne me retourne pas d'erreurs, mais en implémentant moi même les vérifications à faire au niveau des versions, ça fonctionne honnêtement.


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

Discussions similaires

  1. Conflit avec dépendance fichiers Maven
    Par bender86 dans le forum Maven
    Réponses: 0
    Dernier message: 16/05/2012, 20h19
  2. Conflit entre 2 plugin jQuery
    Par designrf dans le forum jQuery
    Réponses: 2
    Dernier message: 16/07/2010, 10h37
  3. Réponses: 0
    Dernier message: 24/07/2009, 16h59
  4. Réponses: 0
    Dernier message: 20/08/2008, 11h45
  5. [MAVEN] SiteRenderer de certains plugins de reporting
    Par DanielW33 dans le forum Maven
    Réponses: 2
    Dernier message: 23/10/2007, 12h09

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