eclipse - 什么是 p2 存储库?

标签 eclipse maven osgi nexus p2

我现在在一个项目上工作了几个月,我们使用“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/

相关文章:

java - 在执行 org.codehaus.mojo :exec-maven-plugin:1. 6.0 :exec: java. lang.String 时无法转换为 org.codehaus.mojo.exec.Modulepath

java - 导出特定 java 版本的可部署功能

osgi - 将 Sling Scheduler 与 Eclipse Equinox 或 OSGI @Reference 规则结合使用

java - 如何在 IntelliJ IDEA 中添加 Nexus 存储库索引?

java - 当我使用 maven-release-plugin 发布分支时,为什么它会尝试从版本 0 创建分支?

osgi - osgi 中的bundle activate 和 deactivate 方法是否需要同步

java - 如果尝试在 Eclipse 下使用 ActiveJdbc,则生命周期配置不涵盖插件执行

eclipse - 为什么我在Eclipse中收到此错误-可能是Java运行时版本不兼容吗?

java - 本地 Java 项目 jar 未添加到 Maven 构建的 war - Eclipse 3.6 Helios

java - 编译器不会让 String 变量出现在 switch 语句中