2009-10-21 8 views
0

Je suis heureux d'utiliser le bundle-plugin Maven pour créer des en-têtes manifestes OSGi pour mes modules. Cependant, lorsque des fichiers de configuration tirent des classes qui ne sont pas référencées directement dans le code, le plugin ne peut pas dire de quels paquets il aura besoin.Comment éviter d'avoir à modifier manuellement les en-têtes Import-Package avec Maven bundle-plugin?

Un exemple est un paquet avec des modèles de domaine qui constituent une unité de persistance JPA. La classe de pilote fait partie de la configuration PU et est définie dans un fichier XML ou au moment de l'exécution lorsque le EntityManager est instancié. Je dois ajouter manuellement un en-tête Import-Package pour la classe de pilote que je veux charger, ou j'obtiens des erreurs CNF.

Un autre exemple est une guerre Struts, où le web.xml tire dans le répartiteur Struts qui ne se trouve nulle part ailleurs dans le code et doit être ajouté manuellement aux en-têtes.

Comment puis-je éviter cela?

J'ai essayé d'ajouter les paquetages requis dépendances avec une portée provided, mais cela n'a pas aidé.

Répondre

1

Dans la section plug-in de la configuration BND vous pouvez spécifier les plug-ins pour analyser ces fichiers et contribuer à l'en-tête paquet d'importation. Pour le printemps, il ressemble à ceci:

<_plugin>aQute.lib.spring.SpringComponent</_plugin> 

Je ne sais pas, ce que les descripteurs sont pris en charge sur le dessus du ressort. Jetez juste un coup d'oeil à la source (c'est dans l'Apache Felix SVN) et voyez par vous-même. Dans le pire des cas, vous devez écrire votre propre plug-in, mais au moins c'est possible! Aussi peter kriens site à propos de la bnd explique l'utilisation et quelques internes.

Autre alors que je ne suis pas au courant d'une solution simple.

Questions connexes