Je cherche un guide étape par étape pour convertir jar en un ensemble OSGi à l’aide du plugin eclipse bndtools. Je sais qu’il est possible de le faire avec bnd en utilisant la ligne de commande, mais ce serait bien de savoir comment faire la même chose via l’EDI.
Il se peut que je manque quelque chose, mais ce tutoriel explique uniquement comment créer un projet à partir de rien.
Suivez l’article Créer des plug-ins Eclipse (ensembles OSGi) à partir d’un fichier jar standard pour y parvenir. Bien que cette approche n’utilise pas Bnd, mais vous seriez capable de réaliser ce que vous voulez.
En bref, vous pouvez faire ce qui suit:
Créer un nouveau projet de File-> New -> Project...-> Plug-in Development -> "Plug-in from Existing JAR Archives"
en sélectionnant File-> New -> Project...-> Plug-in Development -> "Plug-in from Existing JAR Archives"
Sélectionnez les pots que vous voulez avoir dans ce nouveau plugin (bundle). Entrez les autres données du plugin (nom, version, identifiant, etc.).
Unzip the JAR archive into the project
. Appuyez sur puis terminer. Décocher la case Unzip the JAR archive into the project
empêcher l’extraction des fichiers de classe du fichier Jar, ce qui n’est généralement pas nécessaire.
EDIT: Pour exporter votre ensemble afin de l’installer dans un environnement d’exécution OSGi. Sélectionnez votre bundle et choisissez File -> Export -> Plug-in Development -> "Deployable plug-ins and fragment"
.
Décochez la case à cocher pour exporter la source.
-classpath: jar/htmlcleaner-2.2.jar, jar/htmlcleaner-2.2-src.zip
Export-Package: org.htmlcleaner.*;version=1.0
Import-Package: org.apache.tools.ant;resolution:=optional,\
org.jdom;resolution:=optional,\
*
Bundle-Version: 2.2.1
Après avoir sauvegardé ce fichier, regardez dans le répertoire généré, voila, il y a votre bundle! Vous pouvez réutiliser le même projet pour n’importe quel nombre d’ensembles que vous souhaitez emballer.
Vous pouvez ensuite libérer le paquet dans l’un des référentiels. Sélectionnez le fichier bnd.bnd et sélectionnez Release Bundle dans le menu contextuel.
Edit: NB Vous ne pouvez pas utiliser directement un projet “wrap” à partir d’autres projets, car Eclipse a besoin de l’arborescence des sources pour que cela fonctionne. Il existe deux solutions pour cela:
https://github.com/bndtools/bndtools/wiki/How-to-Wrap-Bundles
En plus des réponses existantes, cet article de blog pourrait vous intéresser. Il explique comment créer ce bundle OSGi à partir d’un fichier jar contenant “pure maven”, c’est-à-dire sans avoir besoin d’un IDE spécifique et / ou de plugins. (Pour être précis, il est de nouveau sous le capot avec le vrai travail;))