問題タブ [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.
java - BndTools のデフォルト ランチャーを置き換え、エクスポート ファイル構造を変更する方法
OSGI アプリケーションの開発にBndTools ( http://bndtools.org/ ) を使用しています。すべて正常に動作していますが、アプリのエクスポート中に変更したいことがいくつかあります。
私は2つのことを達成しようとしています(関連していると思います):
1: デフォルトの BndTools ランチャー ( aQute.launcher
) をカスタムのランチャーに置き換えます (または.JAR
フォーマットします) 。
デフォルトの BndTools ランチャー (aQute.launcher) を削除またはカスタム ランチャーに変更するにはどうすればよいですか?
このトピックについて私が知ることができた唯一のことは、ここにあります: http://goo.gl/jYliih
ランチャーは bnd に組み込まれておらず、実際の起動戦略はパラメーター化されています。ランチャは、JAR を .xml ファイルに配置することにより、bnd または bndrun ファイルに関連付けられます
-runpath
。に.JAR
は、ランチャーになる Launcher-Plugin ヘッダーが必要です。上にランチャーが見つからない場合は-runpath
、ビルトインbiz.aQute.launcher
が使用されます。
その理由は、アプリがコマンド引数を受け入れ、aQute ランチャーのものに干渉しないようにする必要があるためです (すべての -run 引数と同様)。一方.bat/.sh
、アプリを起動するバッチ アプローチを取り除き、単一の.jar
ファイルを使用してアプリを起動したいと考えています。
それは可能ですか?
2: エクスポートされたファイル構造をカスタマイズする
デフォルトでは、BndTools はアプリをエクスポートするときに次のファイル構造を作成します。
jar/
-> これは OSGI jar バンドル フォルダーです。
aQute/
-> デフォルトの BndTools Launcher (Launcher.class 内部)
META-INF/
-> META-INF フォルダがここにあるのはなぜですか? JARではありません
launcher.properties
-> ランチャーのプロパティ
start.sh
--> このバッチ ファイルから Launcher.class を起動します。
start.bat
/ JARと比較して、これの利点はどこにありますか?
基本的に、、およびファイルを削除しaQute
、バイナリ ファイル用のフォルダーを追加したいと思います。META-INF
start.*
bin
これは、「Ant」、「Maven」、または「Gridle」スクリプトで実現できるはずです。しかし、BndTools をサポートしない「BndTools プロジェクト」または「Gradle プロジェクト」を作成することはできます。「BndTools Gradle プラグイン」をインストールしましたが、このトピックに関する有用なドキュメントはどこにも見つかりませんでした。
誰かが私を助けてくれるか、これで正しい方向に向けてくれることを願っています. ご挨拶。
eclipse - bnd jar の依存関係を Eclipse RCP アプリケーションに追加するにはどうすればよいですか?
私のワークスペースには、Eclipse の BND ツールで構築されたコア プラグインがいくつか作成されています。ここで、Eclipse の PDE ツールで開発された Eclipse RCP アプリケーションでこれらのコア プラグインを参照する必要があります。ただし、RCP アプリケーション内で BND によって生成されたプラグインは表示されません。これらのプラグインをフォルダーに手動でコピーし、そのフォルダーをターゲットに追加できるかもしれません。しかし、私はそのような手作業を取り除きたいと思っています。
BND で生成されたプラグインを依存関係として RCP アプリケーションに追加する簡単な方法はありますか?
前もって感謝します。
java - 別の OSGi バンドルの 1 つの OSGi バンドルで **CSS** リソース ファイルを使用するにはどうすればよいですか?
私のプロジェクトのディレクトリ構造(Eclipse):
OSGi バンドルに含まれるCSS ファイルstyle.cssをクラス内MyProjectContainingCSS
の他の OSGi バンドルで使用したいのですが、MyProjectContainingCSS
StyleImpl.java
何かのようなもの:
別の OSGi バンドルの 1 つの OSGi バンドルでCSSリソース ファイルを使用するにはどうすればよいですか?
よろしくお願いします。
アップデート
bnd.bnd ファイル
実行記述子
java - 1 つの bndtools ワークスペースで複数の git リポジトリを使用する方法
私はEclipse BndToolsを使用しており、それぞれが単一のgitリポジトリに保存されているいくつかの専用ワークスペースを使用しており、非常に満足しています。
ワークスペース間でプロジェクトをコピーして共有してきました。しかし最近、共通コードを共有コード git リポジトリにプルすることにしました。Eclipse では、これは些細なことです。リポジトリごとに 1 つのワークスペースでサブフォルダーを使用するだけです。
しかし、驚いたことに、bndtools は、ファイルベース内の私のプロジェクトの隣に 1 つの cnf プロジェクトを配置することを要求します。同時に、ワークスペースには cnf プロジェクトを 1 つしか持てません。これは事実上、私のすべてのプロジェクトがピアであるべきであることを意味します。
これは、同じディレクトリを共有できないため、複数の git リポジトリを使用できないことを意味します。各プロジェクトを独自のリポジトリに分割し、50 以上のプロジェクトを使用しない限り、これは明らかに行きたい場所ではありません。
私はEclipseがこれを行うことができることを知っていますが、bndtoolsにボールをプレーさせる方法はありますか?
java - Eclipse 外部ファイルの変更を即座に検出
OSGi ベースの Web アプリケーションを開発するためにeclipse bndtools プラグインを使用しています。Eclipse IDE (bndtools のため) と Jetbrain Webstorm IDE を使用して html/css/js ファイルを編集しています。
Eclipse でファイルを変更すると、bndtools がバンドルを更新し、変更をすぐに確認できますが、Webstorm を使用してファイルを編集するときは、結果を確認するために Eclipse でプロジェクトを更新する必要があります。
注: Eclipse ワークスペース設定Windows > Preferences > General > Workspace > Refresh using native hooks or polling および Refresh on accessを有効にしました 。ただし、これにより、Eclipse でファイルにアクセスしたときにのみ、Eclipse が変更を検出できるようになります。
開発をスピードアップするために、Webstorm で変更を加えるたびに eclipse を使用してプロジェクトを更新したくありません。回避する方法はないかとお尋ねします。
ありがとう
osgi - bndtools / felix 環境でオンザフライでバンドル リソースを変更する方法
開発中に、バンドル内の特定のファイルのコンテンツを変更し、再コンパイル/再バンドル/バンドルの再インストールなしで、変更されたファイルのコンテンツをアプリケーションで表示できるようにする必要があります。ファイルはBundle.getEntry()
、アプリケーションがコンテンツを必要とするたびに読み取られます。
Eclipse 環境から起動された OSGi フレームワークはプロジェクト フォルダーをアンパックされたバンドルとして扱うため、Eclipse PDE と Equinox を使用すると非常に簡単です。プロジェクト フォルダー内のファイルの変更は、アプリケーションがリソース コンテンツを読み取るたびに反映されます。
私が正しく理解していれば、リソースの変更が検出されると、bndtools は常にバンドルを再パッケージ化します。しかし、何百ものリソース ファイルを含むプロジェクトの場合、時間がかかりすぎます。Eclipse PDE と同様の動作を実現することは可能ですか? できればApache Felixで?このような機能が必要なのは、開発/デバッグ中、およびアプリケーションが IDE から起動された場合のみです。本番環境でリソースが変更されることはありません。
具体的に言うと、私たちのアプリケーションには、いくつかの CSS にコンパイルされた LESS ファイルがたくさんあります。CSS は、LESS ファイルが変更された直後に生成されます。これは、gulp と node.js によって実現されます。ページがリロードされたときに、変更された CSS ファイルを (ほぼ) すぐに確認する必要があります。OSGi HTTP サービスを使用していないことに注意してください。
osgi - enRoute OSGi フレームワークを実行するための Docker イメージ?
Docker コンテナ内で enRoute を実行したいのですが、Docker イメージが見つからないようです。誰でも画像の場所を提案できますか?