13

eclipsebndtoolsプラグインを使用してjarをOSGiバンドルに変換するためのステップバイステップガイドを探しています。コマンドラインを使用してbndでそれを行うことが可能であることは知っていますが、IDEを介して同じことを行う方法を知っておくと便利です。

何かが足りないかもしれませんが、このチュートリアルでは、プロジェクトを最初から作成する方法についてのみ説明しています。

4

3 に答える 3

26

これを実現するには、記事「標準jarからのEclipseプラグイン(OSGiバンドル)の作成」に従ってください。このアプローチではBndを使用しませんが、目的を達成することはできます。

要するに、あなたは以下を行うことができます:

  1. 選択して新しいプラグインプロジェクトを作成しますFile-> New -> Project...-> Plug-in Development -> "Plug-in from Existing JAR Archives"

  2. この新しいプラグイン(バンドル)に入れたいjarを選択します。他のプラグインデータ(名前、バージョン、IDなど)を入力します。

  3. フラグのチェックを外します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"

[ソースをエクスポートする]チェックボックスをオフにします。

于 2012-03-22T11:06:54.870 に答える
10
  1. 変換するすべての(または関連する)jarのbndtoolsで新しいプロジェクトを作成するだけです。
  2. このプロジェクトに、変換されたjarのバンドルシンボリック名のプレフィックスとなる名前を付けます。たとえば、会社がacmeの場合は、プロジェクトを「com.acme」と呼びます。
  3. jarディレクトリにjarとソースをダウンロードします
  4. -classpathエントリ(File / New / Bundle Descriptor)を使用して新しいバンドル記述子を作成します。次に例を示します。

-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つの回避策があります。

  • ラップされたバンドルをリポジトリに入れ、そこから使用します(上記のとおり)
  • プロジェクトのsrcフォルダーにあるソースツリーを解凍します

https://github.com/bndtools/bndtools/wiki/How-to-Wrap-Bundles

于 2012-03-23T10:30:38.090 に答える
0

既存の回答に加えて、 「純粋なMaven」を使用して、つまり特定のIDEやプラグインを必要とせずにjarからOSGiバンドルを作成する方法を説明するこのブログ投稿に興味があるかもしれません。(正確には、ボンネットの下で、実際の作業を行うのはもう一度です;))

于 2014-01-16T14:06:17.233 に答える