Intégration des fichiers JAR dans le bundle OSGi avec le plug-in maven-bundle
J'essaie d'intégrer certains Pots en un seul bundle OSGi l'aide de la fonctionnalité de maven-bundle-plugin
La chose qui m'inquiète, c'est que tous les paquets de l'embedded Pots sont placés dans l'Import-Package-tête de l'généré MANIFESTE.MF.
Si je spécifie explicitement à utiliser uniquement les paquets dont j'ai besoin, comme dans l'extrait suivant:
Import-Package: org.osgi.framework
L'échec de la construction avec BND erreur (références non résolues).
Donc, la question qui se pose ici est de savoir comment puis-je construire le paquet intégré dans des Bocaux avec "Import-Package" header je besoin?
source d'informationauteur Ivan Dubrov | 2009-09-04
Vous devez vous connecter pour publier un commentaire.
Tous les paquets qui sont importés dans vos classes seront importés par bnd. Peut-être que vous ne voulez pas que ces paquets importés car vous savoir qu'au moment de l'exécution, vous ne serez pas en avoir besoin. Si vous ne pouvez pas arrêter bnd à partir de l'importation, vous pouvez vous rendre en option, de sorte que votre faisceau sera encore à résoudre, même si elles ne sont pas fournies par un autre bundle (au fil du temps). Essayez d'ajouter ceci:
À votre maven bnd configuration de maven.
L'une des raisons pourquoi vous voyez "inattendue" des paquets dans l'Import-Package-tête est le suivant:
Une bonne pratique qui soutient la collaboration modèle OSGi est à importer tous les paquets que vous exportez -- voir ce blog par Peter Kriens pour une explication détaillée pourquoi. Bnd (et donc aussi maven-bundle-plugin) suit cette pratique par défaut et automatiquement les importations de tous les packages exportés. Par conséquent, vous devriez d'abord vérifier votre Export-Package-tête et assurez-vous d'exporter uniquement les paquets que vous voulez.
Aussi, si vous souhaitez exporter des packages à partir de l'embedded dépendances, alors vous devez être prudent pour éviter les doublons à l'intérieur de votre bundle -- voir la section Incorporer la Dépendance et de l'Export-Package de l'maven-bundle de plug-ins de la documentation.
Vous devez utiliser Bundle-ClassPath si vous voulez faire des classes disponible dans un bundle qui contient des Bocaux par exemple
Vous aurez besoin de la liste des classes qui foo.jar et other.jar l'importation/l'utilisation, mais vous n'aurez pas besoin de la liste de tous les packages d'foo.jar ou other.jar sauf si vous êtes réellement en leur exportation.
Vous pouvez supprimer certains paquets de import-package portée lorsque vous incorporez un POT dans votre bundle:
à l'intérieur pom.xml ou si vous utilisez externe *.bnd fichiers: