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 :

Deuxièmes ennuis avec Mon Premier Plugin


Sujet :

Maven Java

  1. #1
    Membre confirmé Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Points : 510
    Points
    510
    Par défaut Deuxièmes ennuis avec Mon Premier Plugin
    Vous remarquez comme je suis fort pour donner des titres informatifs à mes questions

    Donc, grâce à votre aide, je progresse dans mon plugin de wrapper Fit. Je suis maintenant capable de lancer Fit depuis un plugin maven, il trouve le fichier input, il me dit quelque chose de compréhensible.

    MAIS lorsque j'essaie un test sur une application, il semble que Maven, s'il trouve bien Fit... ne trouve plus mon application, ce qui est tout de même contrariant. Apparement, d'après la doc, c'est fait exprès.

    Alors j'ai suivi les instructions p. 147 du nouveau bouquin, au paragraphe 5.5.1 Accessing Project Dependencies.

    Malheureusement, Maven me répond :
    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] Failed to configure plugin parameters for: mvn.plugins:maven-fit-plugin:1.0-SNAPSHOT



    Cause: Class 'java.util.Set' cannot be instantiated
    ... ce qui me semble bien justifié, cela vient du private java.util.Set dependencies; que le bouquin me dit d'écrire, mais moi, que puis-je répondre à Maven ?...

    Autre problème pénible, suite au premier exemple du bouqin, j'ai mis comme paramètre par défaut à mon fichier input : default-value="${project.build.outputDirectory}/${project.artifactId}-${project.version}-fitinput.html", ce qui provoque la recherche du fichier d'input dans target/classes, endroit qui n'est vraiment pas très adapté. Malheureusement, impossible de trouver une liste des propriétés standards de maven pour que je puisse modifier ça ; je voudrais que mon fichier d'input soit dans target, simplement.

    Une question philosophique, maintenant. Comment est-ce que je fais pour tester mon plugin seul ? Parce qu'actuellement, la procédure est assez fastidieuse : j'écris mon plugin, et j'enregistre le snapshot. Puis je vais dans l'appli finale, que je recompile et je regarde comment mon plugin réagit à son déclenchement. Bref c'est assez long et pénible. Y a-t-il une meilleure façon de procéder ?

    Merci d'avance.

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par spekal
    Une question philosophique, maintenant. Comment est-ce que je fais pour tester mon plugin seul ? Parce qu'actuellement, la procédure est assez fastidieuse : j'écris mon plugin, et j'enregistre le snapshot. Puis je vais dans l'appli finale, que je recompile et je regarde comment mon plugin réagit à son déclenchement. Bref c'est assez long et pénible. Y a-t-il une meilleure façon de procéder ?
    Je commence par la question philosophique: Fais toi un autre projet, le plus petit possible, qui teste uniquement les fonctionnalités de ton nouveau plugin.

    Citation Envoyé par spekal
    je voudrais que mon fichier d'input soit dans target, simplement.
    ${project.build.directory} (c'est target, par défaut)
    C'est bizarre un input dans target, non???? Target peut être supprimé à tout moment par un maven-clean (enfin, je ne sais pas à quoi sert ce fichier).

    Pour le reste, on va attendre emmanuel.....

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Apparement, il y a une petite erreur dans le livre, ce n'est pas un Set qu'il faut utiliser pour ${project.dependencies} mais une List.

    Pour les propriétés disponibles, nous n'avons pas de liste écrite car elle serait assez grande. Tu peux trouver le nom de chaque propriétés toi-même, par exemple, ${project.build.outputDirectory} correspond à la ceci dans ton pom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <project>
      <build>
        <outputDirectory></outputDirectory>
      </build>
    </project>
    et ${project.version} à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <project>
      <version></version>
    </project>

    Concernant la question philosophique, il y a un plugin permettant de faire des tests d'intégration sur les plugins. malheureusement, ce plugin n'est pas documenté et n'est pas releasé. Si tu veux le regarder (il y a quelques exemples), il se trouve ici

    Enfin, concernant le plugin pour fit, un plugin a été ajouté la semaine dernière dans le svn du projet mojo, je penses que tu peux l'utiliser. http://svn.codehaus.org/mojo/trunk/m...-maven-plugin/

  4. #4
    Membre confirmé Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Points : 510
    Points
    510
    Par défaut
    Merci.

    Finalement, j'ai suivi une solution complètement différente ; mon but général était de mettre en place des tests d'intégration.

    Or, j'ai fini par découvrir qu'il existait une phase de test d'intégration à Maven ! Cerise sur le gâteau, je suis parvenu à y lier une exécution jUnit spéciale ; maintenant, junit (c'est à dire surefire) exécute les tests unitaires quand je veux, et les tests d'intégration quand je veux. (ou approximativement). (je me débrouille avec des règles de nommage et d'organisation de mes classes de test).

    Cette petite manip me convient pour l'instant très bien, et je me replongerai dans les Mystères des Mojos plus tard.

Discussions similaires

  1. Problème avec mon premier exécutable en java
    Par Icefire dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 25/04/2008, 09h42
  2. Probleme avec mon premier Entity et EJB3!
    Par KING_OF_GRACELAND dans le forum JPA
    Réponses: 1
    Dernier message: 29/02/2008, 10h57
  3. TinyXml des ennuis avec mon code
    Par jalelouss dans le forum XML
    Réponses: 0
    Dernier message: 11/08/2007, 04h23
  4. [EJB2] Problème de connection avec mon premier EJB..
    Par gelinp dans le forum Java EE
    Réponses: 7
    Dernier message: 02/05/2007, 17h06
  5. Premiers ennuis pour Mon Premier Plugin
    Par spekal dans le forum Maven
    Réponses: 3
    Dernier message: 28/07/2006, 20h11

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