Eclipse plugin 如何将我的片段添加到现有插件上所需插件的列表中

Eclipse plugin 如何将我的片段添加到现有插件上所需插件的列表中,eclipse-plugin,fragment,Eclipse Plugin,Fragment,我目前有一个现有的插件,它引用了所需插件中的一个类。我用一个类的引用替换了这段代码,该类是我的片段的一部分 我面临两个问题。 如果我将片段作为jar文件导入,我将无法看到所做的更改,因为作为eclipse应用程序运行的插件会导致ClassNotFoundException 为了克服这个问题,我将一个额外的源代码(片段)链接到现有的插件项目。但是,该链接使用绝对路径,因此不适合部署 我希望能够用代码修改打包插件,并且能够“依赖”我的片段代码。有没有办法将片段添加为依赖项 例如: Plugin Pr

我目前有一个现有的插件,它引用了所需插件中的一个类。我用一个类的引用替换了这段代码,该类是我的片段的一部分

我面临两个问题。 如果我将片段作为jar文件导入,我将无法看到所做的更改,因为作为eclipse应用程序运行的插件会导致ClassNotFoundException

为了克服这个问题,我将一个额外的源代码(片段)链接到现有的插件项目。但是,该链接使用绝对路径,因此不适合部署

我希望能够用代码修改打包插件,并且能够“依赖”我的片段代码。有没有办法将片段添加为依赖项

例如:

Plugin Project I am changing : org.eclipse.*.editor
it depends on org.eclipse.*.edit

I have a fragment mydomain.*.edit which has org.eclipse.*.edit as host plugin

I want org.eclipse.*.editor to pick up mydomain.*.edit 
instead of org.eclipse.*.edit
ps:我还尝试过为mydomain.*打包jar文件。在plugins目录中编辑并尝试从那里获取它,当我在org.eclipse.*.editor的plugin.xml文件的dependency选项卡上单击add required plugins时,它不会显示在列表中

请让我知道,如果我不够清楚,我会尝试重新措辞


提前谢谢

如果我正确理解你想做什么,我认为这是不可能的。你得试试别的办法

插件依赖于其他插件。片段不是作为独立的运行时实体存在的,而是作为插件的扩展存在的。所以你的插件只能引用“编辑器”插件

片段提供的类不能(也不应该)直接访问。如果它们实现了插件A提供的可执行扩展,那么它们可以由原始插件(A)返回

如果您引用来自另一个插件(B)的片段代码,那么这些类将由插件B的类加载器加载,并且与插件A加载的类不同

你的片段的目的是什么?您想访问插件A中的内部代码吗?是否要扩展eclipse编辑器

如果您想扩展原始插件未公开为可扩展的功能,我认为唯一的方法是编写一个插件,从原始插件扩展编辑器类,在原始插件旁边注册并使用它

[编辑]也许这个链接可以更好地解释:

希望这有帮助, 弗拉德

谢谢弗拉德, 你的解释很有帮助。与真正用于片段的基于扩展的体系结构不同,我必须修改编辑器中未作为扩展的一部分公开的某个组件。这个修改引用了我作为片段创建的外部项目,但可能是一个普通的java项目,它打包了一个jar文件,我可以将它放在编辑器的类路径中

我能够通过将jar文件放在类路径中来解决依赖性问题,但是当我将插件和相关插件导出为jar文件并将其放在dropin目录中时,它无法正确安装。(将jar文件放在插件目录中也是如此)

我试图修改的eclipse编辑器使用EMF项目。为了解决编辑器的依赖关系,我将EMF项目保留在工作区中。但是,当我用工作区中的EMF jar文件替换eclipse绑定的EMF jar文件时,我想要编辑的文件无法正确识别

还有别的办法吗