Bonjour,
J'ai développé un plugin pour la génération maison d'ejbs.
Ce plugin est invoqué durant la phase de "generate-sources".
Mon plugin appel une classe java qui fait de l'introspection de mes classes en vue de la génération des classes d'ejb.
J'ai donc besoin de toutes les dépendances projet dans le plugin.
J'ai donc ajouté @requiresDependencyResolution runtime dans mon plugin.
Puis je recupère la liste des jars dépendants de mon projet.
Ensuite je les rajoute au class loader courant puis interroge le classloader pour verifier que tous mes jars y sont bien, et tout semble pour le mieux.
Finalement j'appelle ma classe de génération d'EJB et j'ai toujours la même erreur de noclassdeffound pour une de mes classe projet pourtant présente dans un des jars pre-loadé précédement dans le class loader.
Sur la stack d'erreur je vois que l'appel à class.ForName(interface) qui génère cette erreur. Le paramètre interface est bien instancié au nom complet de ma classe x.y.z.maclasse. Je vois aussi sur la stack trace des appels au classloader() puis au realm.classloader et enfin au class loader$1 puis l'erreur. J'imagine que le realm.classloader est celui de maven (parent) et que classloader$1 est le root class loader.
J'espère avoir été aussi clair que possible et apprécie vos suggestions.
Partager