1

bndtools でアクティベーターを使用して単純なバンドルを作成するにはどうすればよいですか? それは言い続けています:

The JAR is empty: The instructions for the JAR named com.myproj did not cause any content to be included, this is likely wrong  bnd.bnd /com.myproj Unknown Bndtools Problem Marker
Unused Private-Package instructions, no such package(s) on the class path: [com.myproj] bnd.bnd /com.myproj Unknown Bndtools Problem Marker

Eclipse でこのプロジェクトを作成する方法は次のとおりです。

  1. 新しい「Bndtools OSGi プロジェクト」を作成します
  2. 右クリック、構成 - Maven プロジェクトに変換
  3. Activator.javaパッケージで作成しますcom.myproj
  4. com.myproj専用パッケージに追加
  5. アクティベーターをcom.Activator

これが私のbndファイルです:

Bundle-Activator: com.myproj.Activator
Private-Package: com.myproj

生成された jar が空です。任意のヒント?

PS: これは私の Eclipse プロジェクト (zip アーカイブとしてエクスポート) です

4

2 に答える 2

3

「Mavenプロジェクトに変換する」が問題だと思います。これにより、プロジェクトのEclipseクラスパスがbndのデフォルトのbinフォルダーから「target/classes」に変更された可能性があります。Mavenに変換せずに動作することを確認できますか?

bndは、binフォルダーの他の場所と連携できます。${bin}プロパティを設定する必要があります(できればでcnf/build.bnd)。Mavenでbndtoolsを使用する方法についての記事がいくつかあります。ここでbndがEclipseの設定に従わない理由は、Eclipseなしでは使用できないためです。bndの設計目標は、どこにでもビルドできることです。したがって、bndファイルは情報の最終的なアービターでなければなりません。

とにかくもう1つのヒント...アクティベーターは邪悪なシングルトンであるため、OSGiビルドをビルドする正しい方法ではありません。宣言型サービスははるかに優れており、OSGiを設計したときに実際に同様のメカニズムを使用する必要がありました。

于 2012-12-08T09:54:48.447 に答える
1

私のセットアップ:

  • エクリプス ルナ 4.4.0 (20140612-0600)
  • Bndtools 2.3.0.REL-20140510-023245

これが私がそれを機能させた方法です:

  1. 私はあなたがエクスポートしたをダウンロードしましscraper.zipた。
  2. Eclipse で作成された空のワークスペース。
  3. プロジェクトを ZIP アーカイブから空のワークスペースにインポートしました。
  4. デフォルトのcnfプロジェクトが自動的に作成されました。
  5. デフォルトでは、 はコンパイル済みファイルbndのディレクトリを使用するように構成されていますが、Eclipse プロジェクトは を使用するように構成されています。したがって、次の 1 行を追加して、この設定を変更する必要がありました。bin*.classtarget/classescnf/build.bnd
########################
## BND BUILD SETTINGS ##
########################
bin: target/classes
  1. ここで、プロジェクトをクリーンアップして再構築したbndgenerated/scraper.jarActivator.class.

ノート:

  • bin代わりにディレクトリを使用するようにプロジェクト構成を調整することもできますが、target/classes後で Maven を使用することを想定しています。
  • を使用bndtoolsする場合、空のワークスペースから始めて、プロジェクトを 1 つずつインポートすると役立つ場合があります。
  • プロジェクトごとに複数のソース ディレクトリがある場合、いくつかの問題を引き起こす bndtools 2.4 のバグがあります。したがって、私はまだバージョン 2.3 を使用しています。
于 2014-11-13T10:57:46.137 に答える