2012-12-11 32 views
15

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

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


我想通了,当我关闭包含错误的一个项目,我可以访问正确的版本 - 不过这是尴尬的,有另一种方式?


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

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


虽然,正如我所说,存在的问题的解决方法,我还是想有一个“好”的解决这个问题。您可以在与目标定义一起签出项目https://github.com/kutschkem/Jayes

您可能还需要检查,并建立该项目第一: 混帐克隆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

如果有人发现一个Maven的解决方法,我很高兴知道它。

回答

7

也许你已经将你的插件设置为单例,所以只有一个具有特定ID的包的实例。 你可以通过在你的MANIFEST.MF中删除“singleton:= true”来改变它。

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

或者,您可以在开始运行时从运行配置中删除1.0.2版插件。点击run - > run configuration打开运行配置dialgo,切换到'plugins'标签,在这里你可以选择你想要使用的插件。

+0

感谢那些提示,我澄清了我的问题,关于你的答案。在运行配置中,我没有得到只有main-Method的类的选项卡。当我尝试添加依赖项时,这个问题已经显示出来了,也就是说_before_我甚至运行了任何东西。 – kutschkem

+0

btw你的解决方法被添加到问题。当我有一个eclipse应用程序而不是普通的java main方法时,该选项卡显示出来。这仍然不能解决一般问题,例如当我想用maven自动执行执行时。 – kutschkem

4

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

+0

它规定了0.0.0。是的,我重新加载了目标平台,但实际上,正如我写的,这甚至不是一个特定于日食的问题。 – kutschkem

+0

有趣的(我的意思是plugin-feature.xml版本的东西) - 那么如果你喜欢指定你想要的版本呢? – acostache

+0

那么,我真的不能影响远程存储库(Juno版本...)。在本地,它让我这样做,但它仍然标志着插件不可用(足够奇怪,当我关闭1.0.2项目时,这个警告甚至出现) – kutschkem

相关问题