如何使用片段插件修补eclipse插件并将其部署到eclipse产品中?

bet*_*max 5 patch eclipse-cdt eclipse-rcp maven osgi-fragment

我正在尝试使用片段插件将补丁应用于现有插件,如下所述:

使用片段修补插件的步骤-Eclipsepedia

主机插件的补丁包括用更新的类文件替换单个类文件。但是我在“ 修改主机程序包清单设置步骤5)到11)中没有得到这个概念。在这里,它指示您修改主机插件。我认为整个想法是,您不必触摸主机插件-它部署的片段会添加补丁?

我的产品包括eclipse平台和org.eclipse.cdt功能,以及我自己使用cdt的插件。我要修补的是org.eclipse.cdt.core插件。

我已按照Eclipse Wiki中的步骤进行操作,并创建了我的片段项目,其中包含要在主机插件中修补的包和类。我是在Maven中构建的,当我运行该产品时,我看到我的片段插件处于活动状态,但是其中包含的类没有被调用;原始的主机插件类是。

我猜问题是修改后的主机插件不在我部署的产品中。片段指南中没有包含有关部署主机插件的建议的任何步骤,而且我不确定是否需要/为什么。

(过去,我已经成功使用了功能补丁,但只能使用PDE创建-我无法在Maven下构建功能补丁-这就是为什么我探索使用片段来查看如果我可以让他们在Maven下进行构建。)

更新*:我使用Tycho插件创建Maven的构建版本Tycho-使用maven构建Eclipse插件

感谢您链接到“ OSGi Core Release 5规范”。那很有用。

因此,如果我的理解是正确的,那么如果主机插件已经“准备好”使用片段进行修补,则片段只能将其类覆盖在主机插件上。这涉及修改主机插件的清单。具体来说:1.添加一个新库,并将其移到“。”上方。包。从构建属性中删除该库;该库仅供参考,不应由主机插件创建。+在manifest.mf文件中添加Eclipse-ExtensibleAPI:true +增加版本号。

就我而言,如果我想使用片段修补org.eclipse.cdt.core插件,我将不得不交付org.eclipse.cdt.core插件的预备版本以及我的片段插件。

*:不确定礼节;没有足够的声誉去做很多事情。注释框仅接受少量字符。

Ger*_*ica 0

在OSGi Fragment 捆绑级别上有一个更直观的解释(至少对我来说),它基本上显示了 Eclipse 中 GUI 操作所实现的结果。据此,Bundle-ClassPath如果您想替换或更好:覆盖现有类,则必须调整主机清单中的内容。

有关详细信息,另请参阅OSGi Core Release 5 规范,3.14 片段包,第​​ 69 页 ff

您使用Maven Bundle Plugin创建了捆绑包,是吗?