問題タブ [bndtools]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - DS コンポーネントは bndtools を使用して開始されません (要件 osgi.extender=osgi.ds がありません)
Eclipse 用の標準のbndtoolsプラグインをインストールし、apache felix osgi ランタイムを実行しています。宣言型サービス (DS) コンポーネントについて学習しようとしています。どうやら、アノテーション (bndtools のチュートリアルで例が示されています) が存在する前は、コンポーネントは xml データを使用して記述されていました。それが私がやろうとしていることです。
以下は単純なクラスです (DS コンポーネントとして公開されます): "HelloComponent.java"
コンポーネント宣言を行う xml ファイルは次のとおりです: 「minimal.xml」
そして、最終的に OSGi ランタイムに発行される jar ファイルを生成するために bndtools によって使用されることになっている .bnd ファイルは次のとおりです: "minimal_ds.bnd"
ホスト ランタイム OSGi コンテナーで次のバンドルを実行していることに注意してください。
最後に、プロジェクトのディレクトリ構造は次のとおりです。
問題は、「mimimal」のバンドルをインストールしようとすると、要件が見つからないというエラーが発生することです。私が得る正確なエラーは次のとおりです。
Web 上の一部のリソースでは、これは bndtools の以前のバージョンのバグであると述べています。確かに、このパッケージをコンパイルして数日間問題なく実行できました。それから、ある時点で、それはちょうどそこで止まりました!プロジェクトを新しいEclipseワークスペースに完全にコピーするだけでなく、jarファイルを「再構築」、「再生成」しても何も機能していないようです。
これが私が使用しているものです:
OS-X 10.9 Maverics、Eclipse Luna Service Release 1 (4.4.1) BndTools: 2.4.1 (最新版)
誰かが手がかりを持っているようですか?
java - (誤解) osgi バンドルの依存関係を理解する
私は osgi と bndtools にはかなり慣れていませんが、ここ数日で、bnd ant タスクを使用して jar->bundle の作成が機能し、さらにサードパーティの jar をバンドルとしてラップすることができました (「Export- Package」をマニフェスト ファイルに含めます)。エクスポートとインポートに関しては、bndtools がすべての面倒な作業を行うのに驚くべきことだとコメントしなければなりません。このプロジェクトでの努力に感謝します!
私はおそらくあなたがいくつかの光を当てることができる2つの問題を抱えています:
1
バンドルをフェリックスにロードしようとしていますが、すぐに解決エラーが発生します。この基本的なシナリオでは、omniquery_common と呼ばれる社内バンドルがあり、gson を含むいくつかのサードパーティの jar を使用します。私が解決すると、これが得られます:
私には、これは omniquery_common が com.google.gson (少なくとも 2.2 で 3.0 未満のバージョン) をインポートしていることを示しています。gson バンドルはバージョン 2.2.4 をエクスポートしているため、これはその依存関係を満たす必要がありますが、そうではありません。
これをどのように間違って配線しているかを理解するのを手伝ってもらえますか?
omniquery_common のマニフェスト:
gson のマニフェスト:
2
「実行要件」リストのバンドルの順序を変更し、gson バンドルを omniquery_common の前に配置すると、
私は直感的ではないと思います-そのリストのバンドルの順序は問題ではないと思っていたでしょう...?
osgi - OSGi サブシステムを bndtools でパッケージ化する方法
liberty プロファイル機能をパッケージ化するために、Eclipse の websphere OSGi ツールの代替として bndtools を評価しています。
Liberty プロファイルは、ランタイムの拡張用に .esa としてパックされた OSGi サブシステムを使用します。bnd git リポジトリのこのファイルに基づいて、BND を使用してサブシステムをパッケージ化できるようです。
しかし、ESA プロジェクトのセットアップ方法に関するドキュメントが見つかりません。誰かが私にいくつかの指針を与えることができますか?
osgi - Bndtools にコンテナを追加する必要があります
Bndtools を使用して開発を行っています。Bndtools は、すぐに使用できる Apache Felix および (明らかに) Equinox 用の OSGi ランタイムを提供します。
しかし、バンドルを開発し、Knopflerfish の Bndtools でテストするとします。それとも、ある会社の独自のコンテナの場合 (はい、驚くほど十分に存在します!)? Bndtools を使用すると、個々のバンドルを開発環境に簡単に追加できますが、テスト用の完全なランタイムを追加する明らかな方法はないようです。
代替の OSGi ランタイム環境を Bndtools に追加する方法はありますか?
osgi - Bndtools からのリポジトリまたはバンドルの追加と削除
これは、Bndtools リポジトリに関する 2 つの部分からなる質問です。
不要で削除したいバンドルが bndtools リポジトリにあるとします。これを行う簡単な方法はありますか。ドキュメントには、リポジトリから不要なバンドルを削除することについては何もないようです (バンドルを追加する方法についてはたくさんあります!)。
既存のプロジェクトにリポジトリを追加することはできますか? Amdatu 構成を使用するプロジェクトを作成すると、osgi.annotation バンドルがないため、結果のバンドルがコンパイルされないことに気付きました。このバンドルは、Amdatu 構成に含まれていない「Bundle Hub」(Bundle Hub 構成を選択した場合に含まれるリポジトリ) と呼ばれるリポジトリにあることが判明しました (Amdatu の人々の重大な見落としです!)。プロジェクトの作成後に Bundle Hub リポジトリを追加する方法はありますか? 新しい「ユーザー定義」リポジトリを作成する方法はありますか? リポジトリが必要ない場合、プロジェクトから削除する方法はありますか?
誰かアドバイスください。
osgi - どこでやる '。' パッケージはどこから?
私は、ビルド プロセスで Bndtools を使用して、felix/osgi でアプリケーションを喜んでビルドしています。サードパーティの非バンドル jar をすべてバンドルとしてラップし、すべての社内 jar をバンドルとして構築し、アクティベーターとサービスを含む 4 つのバンドルに取り組んできました。これまでのところ、すべてが美しく機能しています....
...そして、昨日突然、bndtools が '.' を付け始めました。MANIFEST.MF の Import-Package ディレクティブで。これにより、次のエラーが発生しました。
また、バンドルのロードに失敗します。
おそらく、昨日ソース コードに変更を加えたことが原因だと思われますが、私の人生では、それが何であるかを理解することはできません。ここ数日で行った変更は、自分のソース コードだけです。サードパーティの依存関係は追加していません。
eclipse bnd ビルダーにバンドルを生成させると、「.」が配置されません。インポートリストに含まれていますが、ビルドプロセスにantタスクを使用しており、「。」を入れています。パッケージリストに。
なぜそこにそれを入れているのか、誰かコメントできますか?
bnd ファイルは次のとおりです。
java-8 - J2SE 1.8 プロファイルの OSGi システム クラスパスでパッケージに追加のクラスを提供する方法
ee.j2se-1.8 の内部には、パッケージ org.w3c.dom が含まれています。
バンドル xml-apis_1.4.1.20140905-131237.jar には同じパッケージ org.w3c.dom が含まれていますが、重要なクラスが 1 つ追加されています... ElementTraversal.class が追加されています。
ここで私の質問...
Equinox OSGi ランタイム内で不足しているクラスを提供するにはどうすればよいですか?
eclipse - Gradle で bndTools をインストールする際に問題がありますか?
Gradlev2.9 をインストールしました。また、 https: //github.com/bndtools/bndtools から bndTools をダウンロードしました。閉じたネットワークで実行しているため、Interwebs はありません。リポジトリの下の settings.gradle ファイルに Ivy がないため、Ivy リポジトリを削除しました{}。また、gradle.properties ファイルで試行された接続をコメントアウトしました。
また、欠落しているjarファイルをルートbndToolsフォルダーに直接配置しようとしましたが、gradleはまだそれらを取得しませんでした。
何か足りないのでしょうか...?
C:\Program Files\bndTools\bndtools-master>gradle -v
グラドル 2.9
ビルド時間: 2015-11-17 07:02:17 UTC ビルド番号: なし リビジョン: b463d7980c40d44c4657dc80025275b84a29e31f
Groovy: 2.4.4 Ant: 2013 年 12 月 23 日にコンパイルされた Apache Ant(TM) バージョン 1.9.3 JVM: 1.8.0_31 (Oracle Corporation 25.31-b07)
OS: Windows 8.1 6.3 amd64
C:\Program Files\bndTools\bndtools-master>
私のエラー:
FAILURE: ビルドは例外で失敗しました。
場所: 設定ファイル 'C:\Program Files\bndTools\bndtools-master\settings.gradle' 行: 28
問題: 設定 'bndtools-master' の評価中に問題が発生しました。構成「クラスパス」のすべての依存関係を解決できませんでした。リポジトリが定義されていないため、外部依存関係 biz.aQute.bnd:biz.aQute.bnd.gradle:latest を解決できません。必須: unspecified:unspecified:unspecified
試してみてください: --stacktrace オプションを指定して実行し、スタック トレースを取得します。--info または --debug オプションを指定して実行し、より多くのログ出力を取得します。
ビルドに失敗しました
合計時間: 1.482 秒
ありがとう!
osgi - OSGi は logback で「制約違反を使用」します
bndtools Eclipse プラグインは、追跡できなかったログバックに対して一貫して「制約違反を使用しています」と報告します( StackOverflowとGoogle で見つけることができるすべての関連する質問を調べました)。
「実行構成」を変更するたびに制約違反が表示され、十分なプロジェクトのクリーン/再ビルドとEclipseの再起動後に最終的に消えます(雑多な神へのつぶやきの呼び出しと時折の鶏の犠牲もそれと関係があるかもしれません)。
私のワークスペースにはログバックを直接エクスポートするものはないように見えるため、2 つの競合するチェーンの原因は明らかではありません。Felixバンドルまたは SLF4J のいずれかである可能性がありますが、それもありそうにありません。
バンドルの部分的なリスト:
制約違反レポート:
これをトラブルシューティングする方法はありますか? 一貫した回避策だけでも本当にうれしいです..