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 :

[Plugin] Charger les dépendances à l'exécution


Sujet :

Maven Java

  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Par défaut [Plugin] Charger les dépendances à l'exécution
    Bonjour à tous,

    J'essaye d'écrire mon propre plugin, mais je n'arrive pas à charger des dépendances lors de son exécution. Il est similaire au plugin de test.

    Mon plugin hérite de AbstractMojo. Avec la donnée "Map projectArtifactMap;", j'obtiens bien la liste des Jar correspondants à mes dépendances lors de son utilisation.

    Existe-t-il des utilitaires Maven pour les charger, faut-il écrire un JarClassLoader ?

    Merci pour vos idées,

    EJL

  2. #2
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Que souhaites-tu faire exactement?

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Par défaut
    Mon plugin est similaire à un plugin de test, c'est à dire il charge des classes puis il les exécute.

    Pour cela, à l'exécution, il charge des classes de tests via un classLoader spécifique. Mais si ces classes dépendent d'autres jar (définis par les dépendances), mon plugin ne les a pas chargé, et donc j'ai une erreur "classe non trouvée" à l'exécution.

    J'espère avoir plus claire.

    EJL

  4. #4
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    ok, il faut utiliser ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        /**
         * The classpath elements of the project being tested.
         *
         * @parameter expression="${project.testClasspathElements}"
         * @required
         * @readonly
         */
        private List classpathElements;

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Par défaut
    Effectivement, j'ai bien le classpath. Il est bon, mais comment faire pour les jar soient chargés ?

  6. #6
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    C'est indépendant de Maven, c'est du java pur
    Il faut que tu initialises ton classloader, voici le code utiliser par surefire (plugin de test de maven)

    http://svn.apache.org/repos/asf/mave...ireBooter.java dans la méthode createClassLoader

    Je te conseille d'utiliser aussi la classe IsolatedClassLoader qui fonctionne très bien

  7. #7
    Membre averti
    Femme Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Par défaut
    Merci pour ces informations.

    J'avais déjà vu ces classes.
    J'ai donc continué sur cette voie en extrayant les instructions de createClassLoader sauf que j'ai des soucis de cast (à l'exécution il ne veut pas caster des objets alors qu'ils sont du bon type) ... mais ce sont des problèmes Java ... Je continue donc à explorer le code de SurefireBooter.

    EJL

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/02/2010, 11h41
  2. Exécution d'un plugin sur les enfants seulement
    Par Ivruijoha dans le forum Maven
    Réponses: 0
    Dernier message: 05/06/2009, 18h10
  3. Réponses: 5
    Dernier message: 25/10/2007, 16h35
  4. Réponses: 2
    Dernier message: 16/05/2006, 18h53
  5. Un outil pour evaluer les dépendances
    Par karbone dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 30/03/2004, 15h36

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