为什么我无法访问目标定义中的所有插件?

时间:2012-12-11 07:42:15

标签: java eclipse eclipse-plugin target-platform

我在Eclipse中遇到了有关目标定义的问题。我想使用插件版本1.0.0,这是我的目标平台定义,而我的工作区中的插件项目版本为1.0.2。对于我的目标定义中的所有其他插件,一切都按预期工作(我看到,因为如果缺少某些内容,错误会被标记),但是这个特定的,Eclipse不能提供给我的项目。只有插件版本1.0.2。该插件未设置为单例。

为什么会这样,我该如何解决这个问题?


当我关闭包含错误版本的项目时,我发现我可以访问正确的版本 - 但这很尴尬,还有其他方法吗?


看起来它实际上不是特定于eclipse的问题,在通过maven / tycho在命令行上构建时也会失败。具体来说,我的目标平台是Juno Release。是否存在插件,虽然功能的一部分不可用于其他捆绑包?我知道插件就在那里,但tycho和Eclipse都不想让它可用。

也许我也应该说它在编译时失败了。


正如我所说,虽然存在问题的解决方法,但我仍然想对这个问题有一个“好的”解决方案。您可以在https://github.com/kutschkem/Jayes

处查看项目以及目标定义

您可能还需要先检查并构建此项目: git clone http://git.eclipse.org/gitroot/recommenders/org.eclipse.recommenders.git

设置目标平台后,尝试使用Jayes 1.0.0(在目标平台中)而不是Jayes 1.0.2(在您的工作区中)构建一些东西。您也可以尝试使用maven进行构建,但它也无法正常工作。

已知的解决方法:

  1. 关闭Jayes 1.0.2项目。然后,eclipse允许你使用Jayes 1.0.0
  2. 要运行(OSGi)应用程序,您可以选择加载哪些包。您可以手动选择版本1.0.0
  3. 使用产品定义,您可以访问与变通方法2
  4. 相同的运行时配置

    如果有人找到maven的解决方法,我会很高兴知道它。

2 个答案:

答案 0 :(得分:7)

也许你已经将你的插件设置为单例,因此只有一个具有特定id的包的实例。 您可以通过删除MANIFEST.MF中的“singleton:= true”来更改此项。

Bundle-SymbolicName: org.eclipse.xxx; singleton:=true

或者,您可以在开始运行时从运行配置中删除1.0.2版本插件。点击运行 - >运行配置以打开运行配置拨号,切换到“插件”选项卡,在这里您可以选择要使用的这些插件。

答案 1 :(得分:4)

我认为您已经尝试过以下操作,但重新加载目标平台可能有所帮助。 另外,您的feature.xml文件为该插件的版本指定了什么?