在Helios下开发的Eclipse插件没有在Juno中显示

时间:2012-03-26 17:11:35

标签: eclipse plugins eclipse-plugin

我为Eclipse开发了一个在Helios中运行良好的插件。我安装了Juno,将插件jar放在dropins文件夹中,然后启动了Eclipse,但是插件在Juno中不起作用(我的额外菜单项没有显示)。

当我查看插件时,我在列表中看到了我的插件。我认为它必须是某种版本问题(something like this),但是当我创建插件时,我没有指定最大版本,只指定了最小版本。我确实注意到它没有像其他插件一样签名,但我认为不应该阻止它工作。

所以我用Juno打开了插件开发项目,并尝试通过“Testing”下的“Launch an Eclipse application”运行它。相同的结果(没有菜单项)。我甚至删除了最小版本(使用“属性...”按钮)。仍然没有快乐。当我使用Helios执行上述操作时,它可以正常工作(菜单项显示)。

在我的“必需的插件”中,我有org.eclipse.ui,org.eclipse.core.runtime,org.eclipse.jdt.core,org.eclipse.core.resources,org.eclipse.ui。 console,org.eclipse.jface.text,所有没有任何最小或最大版本。当我点击“显示插件依赖关系层次结构”时,相同的条目显示。一切似乎都井然有序,但我的应用程序似乎没有运行。

Plug-in Registry > (right click on my plugin) > Show Advanced

Plug-in Registry > (right click on my plugin) > Diagnose

导致未检测到任何问题。

Plug-in Registry > (right click on my plugin) > Start

会产生绿色三角形,但仍然没有菜单项。

我甚至设置了功能更新网站;完全在Helios下,我创建了一个本地功能更新站点,从Helios drop-ins目录中删除了jar文件,并从站点安装了该应用程序。工作得很完美。但是,当我以同样的方式从Juno安装时,它在插件注册表中显示,但同样没有菜单条目。它似乎被发现,只是没有明显运行(正如预期的地方缺少一个菜单项所示)。

Extensions > org.ecliipse.ui.menus > menuContribution下,我看到我的菜单项,locationURI=popup:org.eclipse.jdt.ui.PackageExplorer。 Helios和Juno之间有什么变化吗?

更新:在空白工作区安装中,它可以正常运行。我安装了一个单独的Juno副本,并将其指向一个空的工作区,然后从本地功能更新站点安装。结果是应用程序表现得像往常一样。虽然这可能提供了一个线索,但它不是一个“解决方案”,因为我有太多的项目需要大量的工作,并且不值得去这条路。

Update2: 1)重新安装了Juno,打开了一个空工作区,关闭了Juno,然后列出了eclipse\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info的内容以及{{1}中列出的文件系统内容}。两者之间的唯一区别是以eclipse\plugins结尾的条目,这是预期的。 2)启动Juno,指向我的Helios工作区的副本。 .source以及其他成功完成安装。 3)关闭Juno并注意到只有我的插件被添加到Help > Install new software... > Add... > Local... > (select local feature update site) > (uncheck Group items by category),并注意到只有我的插件被添加到bundles.info的文件系统中。换句话说,每个人都有一个额外的项目,这是我的插件。 4)启动Juno但我的插件中的菜单项没有显示,但所有指示(插件诊断)表明它应该工作。 5)将插件jar复制到dropins文件夹,但没有任何改进。

任何关于下一步尝试的更多指导都将不胜感激。

1 个答案:

答案 0 :(得分:2)

首先,您应该检查是否找到了插件。 然后你应该检查插件是否已经解决,即是否满足所有要求。

如果您有Eclipse的插件开发版本,那么您可以打开插件注册表视图。看看你的插件是否在列表中,如果是,那么至少找到它。然后右键单击它,启用高级操作,然后选择诊断。有些要求可能尚未实现。 如果您没有Eclipse的插件版本,则可以使用osgi控制台。转到控制台视图,然后在视图菜单中选择OSGI控制台。 运行命令ss列出所有插件,并diag 123,其中数字是插件的ID,用于诊断它。

此外,see a previous answer to a similar question

我一直在dropins目录中放置一些serious problems插件,以便有时工作......您可以尝试将其直接复制到eclipse/plugins目录。或者像它应该处理的那样做;为其创建功能和更新站点,并从更新站点安装插件。

修改 “在空的工作区安装中,它工作正常”

哦,对。您遇到了bundles.info文件的问题。见this page

  

文件bundles.info包含当前系统中安装的所有插件的列表。在启动时,此文件中列出的所有插件都将作为要运行的确切插件集提供给OSGi。   插件目录或其他地方的任何额外插件都会被忽略。

现在在.metadata\.plugins\org.eclipse.pde.core\org.eclipse.equinox.simpleconfigurator中检查您的工作区是否存在该文件。比较两个工作区中的文件,差异应该是您的文件。编辑第一个工作区中的文件,以包含从第二个工作区中的bundles.info列出插件的行。

可以强制更新bundles.info文件,但手动编辑更简单。