问题标签 [p2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - P2 无头更新不起作用
我采用了 org.eclipse.equinox.p2.examples.rcp.prestartupdate 项目并对其进行了调整,以便在我的 RCP 应用程序中使用。然后,我设置了一个更新存储库,作为我的夜间构建的一部分进行更新。
当我打开我的应用程序时,它会像更新一样进行动作 - 它找到更新站点,为每个包正确生成卸载和安装操作数,并说它完成时没有错误。问题是插件实际上从未安装在插件文件夹中,即使配置文件已更新(后续运行状态没有更新)。下次我的构建运行时,它会正确识别有更新,但同样的事情再次发生。
我花了几天时间进行调试,唯一看起来不寻常的事情(不是我完全理解发生了什么)是在最后的配置阶段,没有一个 TouchpointData 对象有任何指令,所以它看起来不像 configure 是做它应该做的。
我真的不知道下一步该往哪里看,想看看其他人是否有任何想法。
更新:
我终于弄清楚发生了什么。
当我在没有生成元数据存储库的情况下构建我的产品时,问题就开始了。通过 Eclipse 构建时,我没有在导出产品向导中检查“生成元数据存储库”,因为我不需要 p2 存储库,只需要产品。问题是,如果不检查该按钮,产品不会安装为启用 P2,从而导致副作用,例如不生成配置文件等。
我试图通过在代码中手动创建配置文件来弥补这一点,我后来发现这是一个非常糟糕的主意。我最初的问题是因为我的个人资料设置不正确而产生的。
一旦我开始使用“生成元数据存储库”导出产品,检查更新开始正确安装新插件。
我现在遇到的问题是,尽管插件安装正确,但可执行文件已被丢弃,我无法再启动我的应用程序。我正在通过 Hudson 构建我的更新站点,并且在我使用 Eclipse 导出产品向导时出现的二进制文件夹丢失了。我假设这是现在出了什么问题。
任何想法为什么二进制文件不会在我的无头 PDE 构建中构建?
这也想通了。我曾假设我需要的只是我想要构建的平台的单独启动器插件。由于我试图了解该过程,因此我将插件一一复制到构建服务器。事实证明,在构建中包含平台特定的二进制文件,您需要从 delta 包中获得 org.eclipse.equinox.executable 功能。一旦我将它添加到构建中,二进制文件就开始出现在输出中。使用二进制文件,更新机制完全按照预期工作。
eclipse - Eclipse 3.5 可以发现插件目录中的所有包吗?
简单的用例:使用简单的脚本组装一个 Eclipse 产品,只需将包转储到插件目录中。这曾经适用于 3.3 - 3.5 已损坏:我的应用程序无法启动,因为找不到应用程序插件。
问题:解决这个问题的最简单方法是什么?这似乎是我整个升级过程中唯一的痛苦。
尝试:我想这对 P2 来说是一个禁忌:它改为维护 bundles.info 文件,这可能非常聪明..对我来说有点太聪明了。
我的一些想法:
- 我可以完全跳过 P2 并回到简单的旧的、简单的 -dirty- 发现机制吗?
- 我可以将插件目录设置为“监视目录”吗
- 看起来我需要为此使用 p2.reconciler ..哦等等,它已经被弃用了:-(错误 251561 ..(感谢 VonC 的指针)
- config.ini 中的这个旧设置还能工作吗?(现在被“simpleconfigurator”取代)
osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start
- 我应该打电话给(p2)导演吗?“请拿起我的插件” :)
- 我会为此避免使用 dropin 文件夹——这对最终用户来说更是如此。
- 如果可能的话,我会避免弄乱 bundles.info。
我还不关心我的产品中的所有这些智能功能——实际上用户根本不使用内置的更新机制。所以我想亲吻(即:只是为了启动),并在需要时添加更多高级支持。
我在Eclipse 论坛上问过这个问题,但还没有答案,所以真的很感激一些启发。另外,请随时纠正我的假设 - 我刚刚阅读了P2 文档,有时看起来令人困惑。谢谢!
回答:实际上,上面的选项 3 似乎仍然有效 - 感谢Francis确认这一点!(它最初不起作用,但这可能是由于缺少一些部门造成的)。我现在唯一的问题是,一些 Eclipse 包实际上需要 simpleconfigurator。所以我想知道换掉它是否会导致问题。
java - 为 RCP 应用程序构建更新站点的最佳方式
我有一个 RCP 应用程序,包括:
产品定义文件位于主插件中(这是个坏主意吗?)。
产品定义基于“插件”,并且依赖于工作空间中的所有插件。
现在,我希望 RCP 应用程序的用户能够更新应用程序。这包括新的/更改的 HTML 帮助文件、新插件、现有插件中更改的代码等。
我需要什么才能做到这一点?
设置我的工作区/项目层次结构的最佳方法是什么?
eclipse - 在 Eclipse 之外运行 P2 Ant 任务
我在 Eclipse 中运行良好的 ant 脚本这是其中的一部分:
但是我希望 Hudson CI 服务器能够运行它,但是,无论我放入 ANT_HOME/lib 中的所有 jar 包,我都无法让这个任务在一个简单的命令行 ant 中运行......我被这个卡住了错误 :
p2 ant 任务在哪里定义?有没有办法在 Eclipse 之外运行它们?非常感谢您的帮助!安东尼
java - 如何使用 Eclipse P2 处理提供的 Java 包
我得到了一些二进制形式的 OSGi 包,它们声明了对 Java 本身提供的“org.ietf.jgss”之类的包的依赖关系。P2 检测到这些依赖项,当我稍后尝试使用 P2 导向器应用程序安装产品时,安装失败,因为没有捆绑包提供这些包。但是,如果我使用 P2 产品构建,我会得到一个完整的安装产品,我可以使用它。
我的问题是我不想为应用程序的每个变体创建产品文件和构建。因此尝试了复制所有 P2 存储库的方法,以便使用 P2 控制器在目标系统上安装产品。
那么如何处理对 Java 提供的包的依赖关系,以及如何“说服”P2 忽略这些包(如果它们是由 Java 本身提供的)。
感谢您的帮助。
eclipse - 使用 Eclipse UI 运行插件更新
我正在尝试从命令行更新 Eclipse Galileo SR2 安装的插件。
类似于此命令的内容(要求特定功能):
有谁知道是否存在使用 p2 或任何其他 Eclipse 应用程序运行程序的命令?
eclipse - P2 Touchpoint chmod 不起作用?
我正在使用 Eclipse 3.5.2,并且我创建了一个 p2.inf 并包含以下信息:
我将 p2.inf 放在片段的 META-INF 文件夹中,但是当我安装更新站点时,libfoo.so 没有执行权限。
拔掉头发后,我尝试了引用不存在的 *.so 的 p2.inf,但似乎没有任何反应。没有任何类型的错误消息、异常或警告表明 P2 接触点操作失败...
这是怎么回事?有任何想法吗?
eclipse - org.eclipse.test 包的 P2 存储库
在哪里可以找到包含 org.eclipse.test 的 p2 存储库?
eclipse - 在 Equinox 中是否可以将 OSGi 包标记为从其包含功能的 p2.inf 开始?
我有一个包含几个包的 Eclipse 功能。我想告诉 p2 在安装该功能时将其中一个捆绑包标记为已启动。这可以使用捆绑包自己的 META-INF/p2.inf 像这样,
但我想在功能级别而不是捆绑级别执行此操作(有问题的捆绑是第三方的,如果可能的话,我不希望以任何方式修改它)。
一些研究使我看到了这个文档,它表明应该可以将配置指令移动到包含功能的 p2.inf 中。我已经尝试了所有明显的事情,例如,
但到目前为止,我尝试过的所有排列都没有任何效果:因为没有任何反应,捆绑包没有标记为已启动,也没有报告错误)。
任何指针都会非常受欢迎。与 Eclipse Equinox Galileo (3.5.2) 一起使用......与 Helios 相关的答案也将非常有用。
eclipse - 在 Equinox 中,是否有可能让一个功能/捆绑包过时另一个功能/捆绑包?
我有一个基于 Eclipse 的项目(Eclipse 的 Scala IDE),它最近搬到了新家。我想更改各种功能 ID、Bundle-SymbolicNames 等以反映这一举动(即,使它们都具有 org.scala-ide 前缀)并重新启动版本编号(以前它与相应的 Scala 编译器版本相关联我想解耦这些)。
但我希望 p2 认识到这一点,例如。org.scala-ide.sdt.feature v. 1.0.0 是 ch.epfl.lamp.sdt v. 2.7.7 的升级。使用 RPM 可以使用obsoletes 指令来做到这一点...... p2 是否有等价物?