什么是p2存储库?

时间:2017-05-10 14:51:42

标签: eclipse maven osgi nexus p2

我现在在一个项目上工作了几个月,我们使用" p2-repositories"。我知道我从他们那里得到了我的依赖。但是现在我想深入研究这个主题,我想知道究竟什么是p2-repository - 定义。

我认为它与OSGi和Nexus有关。但是它来自哪里?当我使用p2存储库时,我是否与Nexus绑定?或者这是OSGi的通用标准吗?还是Eclipse / Maven / Tycho?

为什么我需要p2-repositories,当我可以拥有Maven时?或者为什么我不能使用Maven?

1 个答案:

答案 0 :(得分:9)

P2存储库在日食生态系统中非常常见。它们结合了工件(包),元数据,还可以包含eclipse功能。

P2存储库通常完全独立于maven存储库和nexus。 Nexus对p2功能有一些支持,这可能与你的连接有关。

在OSGi中提供部署的另一种方法是使用Apache Karaf功能。这些列出要作为每个包的URL安装的包。这样的URL也可以是具有maven坐标的mvn url。在这种情况下,功能以及捆绑包位于maven中。

第三种方法是使用OSGi包存储库。这是OSGi标准,用于bndtools。他们只托管元数据的索引和bundle的url。它可以与maven集成。

不幸的是,这些部署方式是互斥的。因此,您最好使用对您开发的平台最突出的那个。因此,例如,如果几乎所有的依赖项都来自eclipse项目,则p2是自然的。