eclipsebndtoolsプラグインを使用してjarをOSGiバンドルに変換するためのステップバイステップガイドを探しています。コマンドラインを使用してbndでそれを行うことが可能であることは知っていますが、IDEを介して同じことを行う方法を知っておくと便利です。
何かが足りないかもしれませんが、このチュートリアルでは、プロジェクトを最初から作成する方法についてのみ説明しています。
これを実現するには、記事「標準jarからのEclipseプラグイン(OSGiバンドル)の作成」に従ってください。このアプローチではBndを使用しませんが、目的を達成することはできます。
要するに、あなたは以下を行うことができます:
選択して新しいプラグインプロジェクトを作成しますFile-> New -> Project...-> Plug-in Development -> "Plug-in from Existing JAR Archives"
この新しいプラグイン(バンドル)に入れたいjarを選択します。他のプラグインデータ(名前、バージョン、IDなど)を入力します。
フラグのチェックを外しますUnzip the JAR archive into the project
。を押して終了します。
チェックボックスUnzip the JAR archive into the project
をオフにすると、通常は不要なJarからのクラスファイルの抽出が防止されます。
編集:
バンドルをエクスポートしてOSGiランタイムにインストールします。バンドルを選択して、を選択しますFile -> Export -> Plug-in Development -> "Deployable plug-ins and fragment"
。
[ソースをエクスポートする]チェックボックスをオフにします。
-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
このファイルを保存した後、生成されたディレクトリを見てください、出来上がり、あなたのバンドルがあります!ラップするバンドルをいくつでも同じプロジェクトを再利用できます。
その後、バンドルをいずれかのリポジトリにリリースできます。bnd.bndファイルを選択し、コンテキストメニューで[バンドルのリリース]を選択します。
編集:NB Eclipseはそれが機能するためにソースツリーを必要とするため、他のプロジェクトから「ラップ」プロジェクトを直接使用することはできません。これには2つの回避策があります。
https://github.com/bndtools/bndtools/wiki/How-to-Wrap-Bundles
既存の回答に加えて、 「純粋なMaven」を使用して、つまり特定のIDEやプラグインを必要とせずにjarからOSGiバンドルを作成する方法を説明するこのブログ投稿に興味があるかもしれません。(正確には、ボンネットの下で、実際の作業を行うのはもう一度です;))