Java 为什么我不能访问目标定义中的所有插件?
关于Eclipse中的目标定义,我有一个问题。我想使用插件版本1.0.0,这是在我的目标平台定义,而我有插件项目在我的工作区版本1.0.2。对于我的目标定义中的所有其他插件,一切都如预期的那样工作(我看到了这一点,因为如果缺少某个插件,则会标记错误),但是这个特定的插件,Eclipse不适用于我的项目。只有插件版本1.0.2是可用的。插件未设置为单例 这是为什么?我如何解决这个问题Java 为什么我不能访问目标定义中的所有插件?,java,eclipse,eclipse-plugin,target-platform,Java,Eclipse,Eclipse Plugin,Target Platform,关于Eclipse中的目标定义,我有一个问题。我想使用插件版本1.0.0,这是在我的目标平台定义,而我有插件项目在我的工作区版本1.0.2。对于我的目标定义中的所有其他插件,一切都如预期的那样工作(我看到了这一点,因为如果缺少某个插件,则会标记错误),但是这个特定的插件,Eclipse不适用于我的项目。只有插件版本1.0.2是可用的。插件未设置为单例 这是为什么?我如何解决这个问题 我发现,当我关闭包含错误版本的项目时,我可以访问正确的版本-但这很尴尬,还有其他方法吗 看起来这实际上不是一个
我发现,当我关闭包含错误版本的项目时,我可以访问正确的版本-但这很尴尬,还有其他方法吗
看起来这实际上不是一个特定于eclipse的问题,当通过maven/tycho在命令行上构建时也会失败。具体来说,我的目标平台是Juno版本。是否有插件虽然是功能的一部分,但其他捆绑包无法使用?我知道插件就在那里,但tycho和Eclipse都不想让我使用它 也许我还应该说它在编译时失败了
正如我所说,虽然这个问题存在解决办法,但我仍然希望有一个“好”的解决方案来解决这个问题。您可以在以下位置将项目与目标定义一起签出: 您可能还需要先签出并构建此项目: git克隆 设置目标平台后,尝试使用Jayes 1.0.0(在目标平台中)而不是Jayes 1.0.2(在您的工作区中)构建一些东西。您也可以尝试使用maven进行构建,但它不起作用 已知的解决办法:
如果有人找到maven的解决方案,我很乐意知道。也许您已经将插件设置为singleton,因此只有一个具有特定id的捆绑包实例。 您可以通过删除MANIFEST.MF中的“singleton:=true”来改变这一点
Bundle-SymbolicName: org.eclipse.xxx; singleton:=true
或者,您可以在开始运行时从运行配置中删除1.0.2版本的插件。单击运行-->运行配置打开运行配置拨号,切换到“插件”选项卡,在这里您可以选择要使用的插件。我想您已经尝试了以下操作,但重新加载目标平台可能会有所帮助。
另外,您的feature.xml文件为该插件的版本指定了什么?感谢您的提示,我澄清了关于您答案的问题。在运行配置中,对于只有main方法的类,我没有该选项卡。当我尝试添加依赖项时,也就是说,在我运行任何操作之前,问题也已经显示出来。顺便说一句,您的解决方法已添加到问题中。当我使用eclipse应用程序而不是普通的java主方法时,就会显示该选项卡。一般来说,这仍然不能解决问题,例如,当我想用maven自动化执行时,它指定了0.0.0。是的,我确实重新加载了目标平台,但事实上,正如我所写的,这甚至不是一个特定于eclipse的问题。很有趣(plugin-feature.xml版本),那么如果你想在那里指定你想要的版本呢?嗯,我真的不能在远程存储库中影响它(Juno版本…)。在本地,它允许我这样做,但它仍然将插件标记为不可用(奇怪的是,这个警告甚至在我关闭1.0.2项目时出现)您是否尝试过不导出更高版本的插件以强制eclipse获取更低版本的插件?首先,这不是特定于eclipse的,它在命令行maven上也会失败。其次,当我(i)使用运行配置来选择运行时(虽然还没有测试)有哪些插件时,(ii)关闭包含新版本的项目时,我认为它实际上在eclipse内部工作。这两个版本似乎都是特定于eclipse的(在我的feature.xml中,如果我显式地设置了1.0.0,它仍然抱怨该版本不可用)。我不喜欢那些变通的方法,我很难相信没有一种方法可以通过maven的“正常”方式实现我想要的。