OSGI
バンドルにサードパーティ製のライブラリに依存するバンドルがあります。そのバンドルをコンテナに展開したくないのでバンドルに埋め込みたいと思います。OSGIでの推移的な依存関係の埋め込み
もちろん、そのライブラリには独自の依存関係がありますが、私はそれらも組み込みたいのです。
私はMaven Bundle Plugin
を使用しています:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Description>${project.description}</Bundle-Description>
<Bundle-Vendor>${bundle.vendor}</Bundle-Vendor>
<Meta-Persistence>...</Meta-Persistence>
<Export-Package>...</Export-Package>
<Import-Package>...</Import-Package>
<Embed-Dependency>3rd-Party</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
</instructions>
</configuration>
</plugin>
を結果として<Embed-Transitive>true</Embed-Transitive>
はどんな効果を持っていないかのように、3rd-Party
は、その推移的依存関係によるバンドルに埋め込まれていないが。
だから私はいくつかの質問
- を持っているが、これは推移的な方法でサードパーティのライブラリを埋め込むための正しい方法は何ですか?
- 生成されたマニフェストファイル(サードパーティのライブラリとその依存関係に属するパッケージをインポートしない)が処理されますか?
あなたに埋め込み、依存関係について
ハローキリスト教、第三者のライブラリの正確な名前を指定する際に問題があると思いますか? – isco
埋め込みパッケージのインポートに関しては、依存関係を埋め込むと、インポートされたパッケージのリストが非常に高速になります。プラグインはこれを処理しません。 – isco
多くのライブラリの大きな問題は、依存関係。このようなライブラリを単純に埋め込むと、オプションのdepsも取得されます。そのような木は非常に速く成長することができます。これがあなたのためのケースであり、あなたがオプションのdepsのいくつかを必要としないことを知っているなら、あなたはそれらをmavenで除外しようとすることができます。 –