OSGiプロジェクトの依存関係に対処する方法とバンドルに変換する方法を示すチュートリアルがたくさんあります。 1日以上の研究の後、私はまだprovided
スコープの依存関係を処理する方法を見つけることができませんでした。OSGiで "提供された"スコープの依存関係を扱う方法
例を挙げておきます。私は現在Dropbox
(dropbox-core-sdk 3.0)を使用しており、provided
スコープの2つの依存関係(com.google.android
とjavax.servlet
)を持っています。 maven-bundle-plugin
またはbnd
のようなテクニックを使用すると、アーティファクトとその推移的な依存関係のみがダウンロードされます。しかし、プロジェクトをOSGiコンテナにインポートするためには、依存関係を提供する必要もあります。 Embed-Dependency
がすべてを含めると言い
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId};singleton:=true</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>*</Export-Package>
<Embed-Transitive>true</Embed-Transitive>
<Embed-Dependency>*</Embed-Dependency>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
場合でも、依存関係のみ+推移依存関係が瓶である:私はmaven-bundle-plugin
を使用して、私のpom.xml
い
は次のようになります。しかし、私は提供されたスコープのjarファイルもjarファイルに入れたいと思っています。
provided
スコープの依存関係をダウンロードする方法はありますか。もしそうでなければ、このような状況にどう対処するのですか?
あなたの答えはDavidにありがとうございます。私はosgiで始まるdropboxのような非常に悪いapiを選択しました。なぜなら、それは膨大なライブラリであり、すべてのものに依存しているからです。これらの依存関係をすべて手動で処理することはほとんど不可能です。そのため、私はプロセスを自動化したいのです。 –
私は必要なjarファイルを手動でダウンロードしてバンドルに入れましたが、アンドロイドには何千もの依存関係があります(推移+提供)。私は実際に立ち往生し、さらに進む方法を知らない。 –
Maven BNDのエキスパートが解決策を投稿できる可能性があります。別のアプローチとして、Dropboxプロジェクトを別のJavaプロセスとして実行し、MQTTまたはREST経由でKuraと通信することができます。私はこのアプローチがOSGiアーキテクチャに適合しないアプリケーションに使われているのを見てきました。 –