我现在在一个项目上工作了几个月,我们使用“p2-repositories”。我知道我从他们那里得到了我的依赖。但现在我想更深入地研究这个主题,我想知道 p2 存储库到底是什么——定义。
我认为这与 OSGi 和 Nexus 有关。但它来自哪里?当我使用 p2 存储库时,我是否绑定(bind)到 Nexus?或者这是来自 OSGi 的通用标准?还是 Eclipse/Maven/Tycho?
当我可以拥有 Maven 时,为什么还需要 p2-repositories?或者为什么我不能使用 Maven?
最佳答案
P2 存储库在 Eclipse 生态系统中非常常见。它们结合了 Artifact (包)、元数据,还可以包含 eclipse 功能。
P2 存储库通常完全独立于 maven 存储库和 nexus。 Nexus 对 p2 功能有一些支持,这可能是您与它的联系。
在 OSGi 中提供部署的另一种方法是使用 Apache Karaf 特性。这些列出了要安装为每个捆绑包的 URL 的捆绑包。这样的 url 也可以是带有 maven 坐标的 mvn url。在这种情况下,功能以及捆绑包都位于 Maven 中。
第三种方法是使用 OSGi 包存储库。这是一个 OSGi 标准,用于 bndtools。他们只是托管元数据的索引和捆绑包的 url。它可以与maven集成。
不幸的是,这些部署方式是相互排斥的。因此,您最好使用最适合您开发的平台的那个。因此,例如,如果您几乎所有的依赖项都来自 eclipse 项目,那么 p2 是自然的。
关于eclipse - 什么是 p2 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43895999/