問題タブ [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.
osgi - bndtools ビルドを自動化する方法
私は OSGi の世界に比較的慣れていないので、ビルド プロセスを自動化する方法を理解するために助けが必要です。Eclipse での bndtool の使用に慣れ、依存関係の解決、実行、テスト、デバッグ、スタンドアロン jar の生成の方法を学びました。また、OSGi 公式サイトに投稿されている基本チュートリアルと Maven チュートリアルも確認しました。私の問題は、ビルドを自動化する方法です! それで、SVNにコードがあるとしましょう。コードをチェックアウトし、ビルド スクリプト/ツールを実行してバンドルを生成し、Felix または Karaf でデプロイできるようにする必要があります。公式の Maven ベースのチュートリアル (OSGi enRoute を使用) は、私が興味を持っていないスタンドアロンの jar を生成する方法のみを示しています。バンドルを生成する必要があります。Maven Bundle Plugin について読みましたが、それを使用すると、Eclipse で提供される UI ベースの bndtools が提供するすべての贅沢を失うと思います。
bndtools - Bndtools でバンドルからパッケージをインポートする方法
この Bndtools チュートリアルhttp://bndtools.org/tutorial.htmlに従って、簡単なグリーティング サービスを実装しました。
最初に、次のインターフェイスを bundle に作成しましたorg.example.api
。
次に、 bundle で上記のインターフェースを実装するサービスorg.example.impl
:
もちろん、型Greeting
は解決できません。ここで私の質問が来ます: パッケージのインポート宣言をimpl
バンドルに追加する指定された方法は何ですか? を手動で編集して、必要なパッケージをディレクティブに含めることができることを認識してbnd.bnd
いorg.example.impl
ます-buildpath
。
しかし、これはかなり不便です: パッケージ名を記憶し、適切な bnd ファイルに移動し、ディレクティブを編集して、保存します。不足しているインポートを追加するより便利な方法はありませんか?
クイックフィックス ( ) のようなものを探していましたCtrl+1が、存在しないようです。
bnd - Bndtools/Bnd の名前パターンで識別されるテストを実行する
統合テストを保持するバンドルでは、名前が で終わるすべてのクラスをTest
テストと見なし、OSGi Framework JUnit Testsの起動時に実行したいと考えています。
ファイル内のTest-Classes
ディレクティブは、これを指定する適切な場所のようです。bnd.bnd
ただし、http://bnd.bndtools.org/macros/classes.htmlclasses
にあるマクロのドキュメントはまばらです。
したがって、私の質問は、次Test
の行に沿って終わるすべてのクラスを含めるようにディレクティブを作成する方法です
osgi - BndTools 3.3.0 (enRoute) を使用して Blueprint Gemini 2.0.0 をセットアップするには?
私は OSGi enRoute と BndTool のアプリ実装のコンセプトに興味をそそられます。しかし、Blueprint Gemini を使おうとして行き詰まりました。誰か助けてください。
質問
Blueprint Gemini 2.0.0 で BndTools ベースの OSGi アプリを実行するには?
私の問題
- BndTools ベースの OSGi アプリケーションで Blueprint Gemini 2.0.0 を使用したいと考えています。しかし、OSGi バンドルが解決されません。
- 自動解決しようとすると、次のエラー メッセージが表示されます。
不足している要件 &(osgi.extender=osgi.blueprint)(version=[1.0.0,2.0.0))
- バンドルにバージョン <=1.0.0 および <2.0.0 が必要なのはなぜですか? これは私のプロジェクトの構成ファイルで指定されていません (*.bnd ファイルでも *.bndrun ファイルでもありません)?
プロジェクトのセットアップと構成方法
- BndTools 3.3 を使用して、Eclipse Neon で新しい「Bnd OSGi Project」を作成し、「OSGi enRoute 3.3.0」をプロジェクト テンプレートとして選択しました。
OSGi フレームワーク: org.eclipse.osgi;version='[3.10...]
プロジェクト名には接尾辞「アプリケーション」が選ばれました。*その後、blueprint.xml を追加しました。
*.bndrun ファイルに、「実行要件」として 2 つのバンドルを追加しました。
- 私のバンドルと
- org.eclipse.gemini.blueprint.extender. *.bndrun ファイルで、「実行要件」として 2 つのバンドルを追加しました: my bundle と org.eclipse.gemini.blueprint.extender: blueprint.extender バンドルは、次の Maven XML 構文を使用してセントラル リポジトリに追加されました。
<dependency> <groupId>org.eclipse.gemini.blueprint</groupId> <artifactId>gemini-blueprintextender</artifactId> <version>2.0.0.RELEASE</version> </dependency>
osgi - Bndtools の Maven リポジトリからテストの依存関係を追加できません
Bndtools ワークスペースで、特定のプロジェクトの JUnit と Mockito に依存関係を追加したい
したがって、プロジェクトのbnd.bnd
ファイルには次の-testpath
命令が含まれています。
の「グローバル」bnd ファイルは、cnf/ext/repositories.bnd
次のリポジトリを示します。
に、maven-central.xml
次の依存関係を示します。
[リポジトリ] ビューには、両方のリポジトリが表示されます。Mockito ライブラリは、Maven リポジトリの v2.6 と Bndtools Hub の v 1.x の両方のリポジトリにも存在します。
JUnit の依存関係は問題なく解決できますが、何を試しても、Mockito の依存関係は解決できません。
リポジトリビューは、解決できないエントリを感嘆符[!]とNullPointerExceptionで装飾します。
Bndtools をデバッグすると、それぞれの POM ファイルのローカル コピーがないという結論に達します ( bnd issue #1849を参照)。ただし、POM ファイルがない理由がわかりません。
Mockito の代わりに AssertJ などの他のライブラリも試しましたが、大きな違いはありませんでした。したがって、これは Mockito 自体の問題ではないようです。
Mockito を解決できない理由、またはこれを修正する方法についてのヒントは大歓迎です。