問題タブ [maven-bundle-plugin]
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 - maven-bundle-plugin を使用した OSGi 依存関係のインストール
OSGi バンドルにコンパイルする Java プロジェクトがあります。maven-bundle-plugin を使用してバンドルを作成し、maven-sling-plugin を使用して実行中の OSGi サーバーにバンドルをプッシュしています。現在、私のプロジェクトには 2 つの依存関係 (Guava と Gson) があり、バンドルをインストールする前に Felix サーバーに手動でインストールする必要があります。これら 2 つの依存関係バンドルの手動インストールは、(OSGi サーバーを最初にセットアップするとき) 1 回だけ行う必要がありますが、手動プロセスであるため、「mvn install」フェーズにプッシュしたいと思います。
私は多くの Maven プラグイン (maven-sling-plugin、maven-ipojo-plugin、依存関係プラグインなど) を見てきましたが、どこから始めればよいかを知るのに十分な知識がないのではないかと心配しています。または、Stackoverflowで解決策を検索することもできます(これはすでに回答されているのではないかと思います)。
だから - Mavenで依存バンドルをインストール/開始するきれいな方法はありますか? jar とランレベルを指定して、バンドルをインストールする前にインストールを実行できる場所はありますか?
maven - なぜ (そして何を支持して) maven-bundle-plugin の wrap/bundleall の目標が廃止されたのですか?
http://svn.apache.org/repos/asf/felix/releases/maven-bundle-plugin-2.3.7/doc/site/wrap-mojo.htmlはbundle:wrap
、bundle:bundleall
. http://www.lucamasini.net/Home/osgi-with-felix/creating-osgi-bundles-of-your-maven-dependencieswrap
で説明されているように、現在、OSGi 以外の依存関係から OSGi バンドルを作成するために使用しています。それらは何に置き換える必要があり、非推奨の理由は何ですか?
java - Maven プロジェクトで OSGi バンドルを使用すると ClassCastException が発生する
私は OSGi の初心者であり、Maven プロジェクトにバンドルを含めるのに苦労しています。
mave-bundle-plugin を使用して、API バンドルと実装バンドルを作成しました。私の主要なプロジェクト (Maven プロジェクト) で、Felix Framework を使用して ServiceTracker から実装されたバンドルのサービスを取得しようとしました。取得したサービスを最終的に正しい型にキャストしようとすると、ClassCastException が発生します。
API Maven プロジェクト:
API POM:
Impl Maven プロジェクト:
実装 POM:
Maven は、次のマニフェスト ファイルを含む 2 つの jar ファイルを作成しました。
私の Major Maven プロジェクトでは、Felix フレームワークをセットアップして開始しました。サブフォルダー「bundles」に、上記の Maven デプロイ プロセスで作成された jar ファイルをコピーしました。インストール ルーチンで、これらのバンドルをインストールして開始しようとしました。
対応するPOM:
しかし、インストール ルーチンを呼び出そうとすると、ClassCastException が発生します。
私はすでにクラスローダーをチェックしました
と
そして、それらは互いに異なります。
私はずっと、OSGi がクラスのロードを処理してくれると思っていました。
誰かが私が間違っていることの手がかりを持っていますか? どんな助けでも大歓迎です!
前もって感謝します、セバスチャン
bnd - タイプバンドル以外の依存関係の埋め込み
POMの親では、バンドルを構築するためのすべての一般的なルールを定義しています。Embed-Dependency命令で、次のように記述します。
「my-apiアーティファクトとバンドルタイプの依存関係を除いて、スコープのコンパイルまたはランタイムを持つすべての依存関係を埋め込みます。」
スコープとartifactIdの制約に対しては機能しますが、 type!=bundleは機能しないようです。
これはすべて、依存関係をバンドルするために提供されたスコープを指定する必要をなくすためです。
何か案が ?
Thks
maven - Maven で OSGi アプリケーションを開発する場合、POM を最初に使用するか、MANIFEST を最初に使用する必要がありますか?
Maven を使用して OSGi アプリケーションを開発する場合、主に 2 つのアプローチがあります。POM ファーストと MANIFEST ファーストです。
各方法の長所と短所を示す表の形式の回答を探しています。
より具体的には、それがどのように関連しているかについても知りたいです。
- ツールセットの成熟度
- ベンダーの独立性
- 開発のしやすさ (ツールの開発ができる人を見つけることを含む)
- 互換性
- ClassNotFound の回避
- 手作業の回避
maven - maven-bundle-plugin を使用するすべてのリソース
OSGi に迅速に移行できるようにするための一時的な手段として、すべてのライブラリを含む 1 つの jar を作成する必要があります。私がしたことは、作成されたjarのルートになるように、すべてのjarライブラリをsrc/main/resourcesに配置することでした。私が抱えている問題は、maven-bundle-plugin に jar 内のすべてのパッケージをエクスポートするように指示することです。基本的に、すべてのライブラリを他の OSGi バンドルに公開したい
これは、POMで最初に試したものです
そこにあるものすべてをエクスポートしようとしました。しかし、このようにエクスポートされるのは、リソース内の jar ではなく、2 つの osgi 依存関係だけのようです
私は 100 以上のライブラリを持っているので、<Export-Package>
各ライブラリのパッケージを手動で追加する代わりに、ディレクティブを自動的に設定する方法を見つけようとしています。どういうわけかEclipseはプラグイン開発環境でそれを行いますが、これはmavenを使用して行う必要があります。これはバンドルプラグインでまったく可能ですか? ジャーが追加された場合の追加ポイント<Bundle-ClassPath>
java - OSGi: Apache Felix Maven バンドル プラグインと Javadoc
OSGi メタデータを生成するために Apache Felix Maven Bundle Plugin を使用しています。
エクスポートするパッケージを構成するか、*.impl.* や *.internal.* などのパッケージを除外するデフォルトを使用できます。
この情報を複製せずに、エクスポートされたパッケージに対してのみ Javadoc を生成する方法はありますか?
編集:
私の現在のアプローチは、excludePackageNames プロパティ (Maven Javadoc Plugin プロパティ) を手動で設定して、この情報を複製することです。
http://sourceforge.net/p/drombler/drombler-oss-parent/ci/default/tree/pom.xml#l64
dependencies - OSGi マニフェストに maven の依存関係を含めるように maven-bundle-plugin を取得する方法
誰かがこの問題で私を助けてくれることを願っています。maven-bundle-plugin を使用して、maven の依存関係から OSGi マニフェストを自動的に生成しようとしています。複数のバンドルで共有されているため、OSGi コンテナーにインストールするいくつかの依存関係。たとえば、春。これらの依存関係のスコープを、提供されているとおりに設定しています (埋め込まれているのではなく、コンテナー内で提供されているため)。ただし、これらの依存関係をマニフェストのセクションに含めるように maven-bundle-plugin を取得することはできません。これを行う方法はありますか?
maven - どのようにmaven-bundle-pluginがImport-Packageでパッケージを見つけることができますか
<dependencies>
タグに記載されているバンドルとタグの間に関係はあります<Import-Package>
か? つまり、依存関係を定義しないと、maven-bundle-plugin は<Import-Package>
タグ内のパッケージを見つけることができませんか?
maven - Mavenはターゲットディレクトリに.classファイルを作成しません
Eclipse で Maven バンドル プラグインを使用して osgi バンドルを作成しています。私のアプリケーションには、ほとんどの Java クラスが依存している非 Maven jar ファイルがあります。私の pom.xml ファイルは次のとおりです。
これを使用することで、アプリケーションを正常にビルドでき、最終的な jar バンドルにも必要なすべての jar ファイルが含まれていますが、問題は、最終的なバンドルに .class ファイルがなく、ターゲット ディレクトリにも .class ファイルが含まれていないことです。
インクルード タグを maven-compiler-plugin から削除すると、class does not exist エラーが発生しました。
ですから、ターゲットディレクトリと最終バンドルに.classファイルを作成しない上記のコードの問題は何か教えてください。