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
Eclipse PDE:此插件中不存在包_Eclipse_Eclipse Plugin - Fatal编程技术网

Eclipse PDE:此插件中不存在包

Eclipse PDE:此插件中不存在包,eclipse,eclipse-plugin,Eclipse,Eclipse Plugin,我们正在开发一个Eclipse插件,该插件被分为几个Eclipse项目。我们希望导出这些外部项目中定义的一些类(通过MANIFEST.MF中的导出包)。问题是Eclipse给出了一个错误“此插件中不存在包xxx” 举个例子,假设插件是项目P1,这个插件使用在单独的Eclipse项目P2中定义的一些类。我们希望将P2与P1捆绑在一起,并通过P1的MANIFEST.MF导出P2的一些类 如果我生成一个jar文件(P2.jar)并将其添加到P1的构建路径中,那么这是可行的,但是如果我简单地将P2添加为

我们正在开发一个Eclipse插件,该插件被分为几个Eclipse项目。我们希望导出这些外部项目中定义的一些类(通过MANIFEST.MF中的导出包)。问题是Eclipse给出了一个错误“此插件中不存在包xxx”

举个例子,假设插件是项目P1,这个插件使用在单独的Eclipse项目P2中定义的一些类。我们希望将P2与P1捆绑在一起,并通过P1的MANIFEST.MF导出P2的一些类

如果我生成一个jar文件(P2.jar)并将其添加到P1的构建路径中,那么这是可行的,但是如果我简单地将P2添加为P1的依赖项,则它不起作用

任何建议“此插件中不存在xxx包”的原因是什么


有没有关于如何摆脱它的建议?

将项目P2添加为P2的依赖项只需将P2的构建类(假设P2是Java项目)添加到P1的类路径中即可。这将允许P1编译,但会导致运行时的错误行为

因为您的项目P1是一个插件项目,所以必须通过清单编辑器的dependencies选项卡或您提到的jar文件添加它的所有依赖项


因此,唯一的解决方案是将P2项目转换为插件项目,然后让P1插件依赖它。这种只输出代码而不向ide贡献任何东西的插件通常被称为库插件。越来越多的java库现在也以这种方式交付,以允许客户端在Eclipse上下文中使用它们(例如log4j)。

将项目P2添加为P2的依赖项,只需将P2的构建类(假设P2是java项目)添加到P1的类路径中即可。这将允许P1编译,但会导致运行时的错误行为

因为您的项目P1是一个插件项目,所以必须通过清单编辑器的dependencies选项卡或您提到的jar文件添加它的所有依赖项


因此,唯一的解决方案是将P2项目转换为插件项目,然后让P1插件依赖它。这种只输出代码而不向ide贡献任何东西的插件通常被称为库插件。现在越来越多的java库也以这种方式提供,以允许客户机在Eclipse上下文中使用它们(例如log4j)。

谢谢您的回答。但是,我不明白为什么将P2类添加到P1的类中会导致运行时的错误行为。目前在我们的构建过程中(我们使用MAVEN),P2是P1的MAVEN依赖项。MAVEN所做的是生成一个包含P2的JAR,并将其与P1的类捆绑在一起。这在运行时运行良好,但是在Eclipse中调试P1非常困难(您需要在P2中每次编辑之后进行mvn部署)。如果P2类捆绑在Jar文件中,并通过清单编辑器运行时的选项卡添加到P1类路径,则没有问题。问题是在P1依赖项中手动添加P2项目,方法是右键单击该项目,然后单击属性->Java构建路径->项目。您可以检查P1的Manifest Runtime选项卡并检查P2.jar是否存在吗?我手动生成的Manifest在包类路径中包含P2.jar,因为我们使用的是m2eclipse(适用于eclipse的MAVEN插件),P2是P1的MAVEN依赖项,我在Properties->Java Build Path->Libraries中有P2项目。在这里,m2eclipse创建了一个特殊项,它将所有项目的MAVEN依赖项放在其中。通过此配置,我得到一个“此插件中不存在xxx包”错误。要解决此问题,我必须手动将P2.jar添加到属性->Java构建路径->库中,以消除此错误。我不知道MAVEN。我可以确认的是:“为了让P1能够看到P2类,必须在P1中添加P2.jar文件,然后将其包括在P1清单运行时选项卡和P1清单构建选项卡中“。我不知道你是否必须这样做,或者MAVEN是否能够为你这样做。谢谢你的回答。但是,我不明白为什么将P2类添加到P1类会导致运行时的错误行为。目前在我们的构建过程中(我们使用MAVEN),P2是P1的MAVEN依赖项。MAVEN所做的是生成P2的JAR,并将其与P1的类捆绑在一起。这在运行时运行得很好,但是在Eclipse中调试P1非常困难(在P2中每次编辑之后需要进行mvn部署)。如果P2类捆绑在一个Jar文件中,该文件通过清单编辑器运行时选项卡添加到P1类路径,则没有问题。问题在于,右键单击项目,然后单击属性->Java构建路径->项目,手动将P2项目添加到P1依赖项中。是否可以检查P1的清单运行时选项卡并检查p存在2.jar吗?我手动生成的清单,在我们使用m2eclipse(用于eclipse的MAVEN插件)的包类路径中包含p2.jar,P2是P1的maven依赖项,我在Properties->Java Build Path->Libraries中有P2项目。在这里,m2eclipse创建了一个特殊项,它将所有项目的maven依赖项放在其中。通过这种配置,我得到了一个“包xxx在此插件中不存在”错误。要解决此问题,我必须手动将P2.jar添加到属性->Java构建路径->库中,以消除此错误。我不知道MAVEN。我可以确认的是:“为了让P1能够看到P2类,必须在P1中添加P2.jar文件,然后将其包含在P1清单运行时选项卡和P1清单构建选项卡中”。我不知道您是否必须这样做,或者MAVEN是否能够为您这样做。