我正在尝试使用片段插件将补丁应用于现有插件,如下所述:
使用 Fragments 修补插件的步骤 - Eclipsepedia
主机插件的补丁涉及用更新的类文件替换单个类文件。但是我在修改主机包清单设置步骤 5) 到 11)部分中没有得到这个概念。在这里它指导您修改主机插件。我认为整个想法是您不必触摸主机插件 - 它是您部署的添加补丁的片段?
我的产品由 eclipse 平台和 org.eclipse.cdt 功能以及我自己的使用 cdt 的插件组成。这是我要修补的 org.eclipse.cdt.core 插件。
我已经按照 eclipse wiki 中的步骤创建了我的片段项目,其中包含我想在主机插件中修补的包和类。我已经在 Maven 中构建了它,当我运行这个产品时,我看到我的片段插件处于活动状态,但它包含的类没有被调用;原来的主机插件类是。
我猜问题是修改后的主机插件不在我部署的产品中。片段指南中没有包含有关部署主机插件的建议的任何步骤,我不确定如何/为什么需要它。
(我过去曾成功使用过功能补丁来处理这类事情,但只使用 PDE 创建 - 我无法在 maven 下构建我的功能补丁 - 这就是为什么我正在探索使用片段来查看如果我能让他们在 Maven 下构建。)
更新*:我使用 Maven Tycho 的 Tycho 插件创建我的构建- 使用 maven 构建 Eclipse 插件。
感谢您链接到“OSGi Core Release 5 Specification”。那是有用的阅读。
因此,如果我的理解是正确的,如果主机插件已经“准备好”用片段修补,片段只能将其类覆盖在主机插件上。这涉及修改主机插件的清单。具体来说: 1. 添加一个新库并将其移至“。”上方。包裹。从构建属性中删除此库;该库只是一个参考,不应由主机插件创建。+ 添加 Eclipse-ExtensibleAPI: true 到 manifest.mf 文件 + 增加版本号。
就我而言,似乎如果我想使用片段修补 org.eclipse.cdt.core 插件,我必须提供准备好的 org.eclipse.cdt.core 插件版本以及我的片段插件。
*:不确定回答礼仪;没有足够的声誉做很多事情。评论框只接受少量字符。