1

現在、Eclipse プラグインを開発しています。そのビルドとデプロイは、Tycho と Maven によってサポートされています。ここで、Googles Guava v. 14 を依存関係としてプロジェクトに追加したいと思います。Tychos wiki ページで、依存関係が OSGi バンドルである場合にのみ依存関係を解決できることがわかりました。このバージョンの Guava を OSGi バンドルとして見つけることができませんでした。では、この状況の一般的な回避策は何ですか?

  • Guava関心のあるリビジョンをリポジトリからチェックアウトし、追加MANIFESTし、それをバンドルして、プロジェクト パスに追加します。非常に汚い回避策のように思えます — このバンドルを自分で維持する必要があります。バンドルを単純にアップグレードすることはできません。コミットする必要があります。 CI 用の VCS のバイナリ。
  • 同じことを行いますが、バンドルをいくつかの Maven リポジトリに保存します — ソースコードを含むリポジトリを維持することは、実際には既存のものを複製し、アップグレードするのはそれほど簡単ではありません。

OSGi プロジェクトに既存の Java コードをインポートするのは非常に難しいと思います。

4

3 に答える 3

1

自分でライブラリを OSGi バンドルに変換しようとしないでください。

  • いずれにしても、ライブラリを OSGi バンドルに変換するのは簡単です。たとえば、BND ベースのツールの 1 つを使用して正しいマニフェストを生成できる場合です。

    この場合、ライブラリのプロバイダーが直接行う必要があります。Maven ビルドの場合は、 maven-bundle-pluginbundleのゴールを追加するだけです。

  • または、ライブラリを OSGi バンドルに変換するのが困難です。たとえば、ライブラリが OSGi では機能しないクラス ローディングの概念を使用しているためです。

    この場合、ライブラリを変更する必要があり、これはライブラリのプロバイダーのみが行うことができます。

于 2013-05-14T14:29:00.413 に答える