web-dev-qa-db-ja.com

p2リポジトリとは何ですか?

私は現在、「p2-repositories」を使用するプロジェクトに数か月取り組んでいます。私は彼らから依存関係を得ていることを知っています。しかし今、私は主題をより深く掘り下げたいと思っています。そして、p2リポジトリとは正確には何であるのか疑問に思います-定義。

それはOSGiとNexusと関係があると思います。しかし、それはどこから来たのでしょうか? p2リポジトリを使用するとNexusにバインドされますか?それとも、これはOSGiの一般的な標準ですか?またはEclipse/Maven/Tycho?

Mavenを使用できるのに、なぜp2リポジトリが必要なのですか?または、なぜMavenを使用できないのですか?

8
armin.miedl

P2リポジトリは、Eclipseエコシステムでは非常に一般的です。これらはアーティファクト(バンドル)、メタデータを組み合わせ、Eclipse機能を含めることもできます。

P2リポジトリーは、通常、Mavenリポジトリーおよびネクサスから完全に独立しています。 Nexusは、おそらくそれとの接続であるp2機能をある程度サポートしています。

OSGiでデプロイメントを提供する別の方法は、ApacheKaraf機能を使用することです。これらは、各バンドルへのURLとしてインストールするバンドルをリストします。このようなURLは、Maven座標を持つmvnURLにすることもできます。この場合、機能とバンドルはMavenにあります。

3番目の方法は、OSGiバンドルリポジトリーを使用することです。これはOSGi標準であり、bndtoolsで使用されます。メタデータのインデックスとバンドルへのURLをホストするだけです。 Mavenと統合できます。

残念ながら、これらの展開方法は相互に排他的です。したがって、開発するプラットフォームで最も目立つものを使用するのが最適です。したがって、たとえば、依存関係のほとんどすべてがEclipseプロジェクトからのものである場合、p2は自然です。

11