Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用没有任何扩展点的Eclipse插件_Java_Eclipse_Plugins - Fatal编程技术网

Java 使用没有任何扩展点的Eclipse插件

Java 使用没有任何扩展点的Eclipse插件,java,eclipse,plugins,Java,Eclipse,Plugins,通过定义扩展点,Eclipse插件为第三方插件提供了向原始插件添加新增强功能的方法。我的问题是,如果原始插件没有定义任何扩展点,并且如果我将此插件作为依赖项添加到插件中,我可以在插件代码中使用它的类吗?我试过这个。在“扩展”选项卡中找不到任何扩展点。但是,即使原始插件没有定义任何扩展点,我也可以在代码中导入属于原始插件的类 例如 导入originalplugin.class 我希望看到编译错误,因为原始插件没有定义任何扩展点,但我仍然可以在插件代码中导入它的一些类,而不会出现任何编译错误。我想了

通过定义扩展点,Eclipse插件为第三方插件提供了向原始插件添加新增强功能的方法。我的问题是,如果原始插件没有定义任何扩展点,并且如果我将此插件作为依赖项添加到插件中,我可以在插件代码中使用它的类吗?我试过这个。在“扩展”选项卡中找不到任何扩展点。但是,即使原始插件没有定义任何扩展点,我也可以在代码中导入属于原始插件的类

例如

导入originalplugin.class


我希望看到编译错误,因为原始插件没有定义任何扩展点,但我仍然可以在插件代码中导入它的一些类,而不会出现任何编译错误。我想了解这背后的原因。即使插件没有定义扩展点,人们仍然可以使用它的一些类的原因是什么?限制是什么?副作用是什么?我是eclipse插件开发的新手。如果我的问题过于简单或无知,我深表歉意。谢谢。

在另一个插件中使用这些类不需要扩展点。但是您只能使用插件在其
MANIFEST.MF的
Export Package
列表中声明的包中的类。这是使用插件提供的许多类的正常方式


许多插件将只导出有限数量的类,可能只是它们定义的任何扩展点所需的接口。其他插件会导出很多类,因为它们的工作方式更像传统的JAR。

如果插件定义了一个扩展点,并在其架构中指定了基于其他类的类属性,但是这个其他类不存在,那么会发生什么呢?例如,我在插件的架构文件(.exsd)中有这个。但是,org.eclipse.parentplugin上没有这样的class/java文件。在这种情况下会发生什么?这是一个无效的扩展点吗?不,basedOn值必须是存在于某个地方的类或接口(不必在插件中)。如果不是这样呢?实际上,我正在开发一个插件扩展。我试图扩展的插件提供了一个扩展点,它基于一个类,而这个类不存在于它的模式中指定的路径中。我是不是该和负责这个插件的人谈谈?此外,如果扩展点不可用,是否可以仅根据原始插件在导出包列表中导出的类/接口为原始插件编写插件扩展?只要该类由插件导出,就应该可以。