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 プラグイン」をインストールしましたが、このトピックに関する有用なドキュメントはどこにも見つかりませんでした。
誰かが私を助けてくれるか、これで正しい方向に向けてくれることを願っています. ご挨拶。