为什么基于功能的 Eclipse 应用程序运行配置会包含意外的插件?
我有一个基于功能的产品配置和一个使用“启动方式:下面选择的功能”的运行配置。但是,在运行时,它包含一些插件,这些插件都不会:
- 包含在功能中
- 在计算功能的依赖项时出现(它不应该依赖于它们,但我可能意外地引入了依赖项)
- 基于“插件依赖关系”视图,似乎也没有被该功能的任何插件调用。
有没有办法检查为什么包含这些插件?
I have a feature-based product configuration and a run configuration using "Launch with: features selected below". However, when run, it includes some plug-ins which neither:
- Are included in the feature
- Appear when computing dependencies of the feature (it shouldn't depend on them, but I could have introduced a dependency accidentally)
- Nor seem to be called by any plug-ins of the feature, based on the "Plug-in dependencies" view.
Is there a way to check why these plug-ins are included?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
PDE 首先解析启动配置的选定功能中的所有包含内容。之后,添加来自所包含插件的所有依赖项。正如您所指出的,PDE 正在检查工作空间和目标。另一件事是,当包含其主机插件时,所有片段(除了那些不匹配过滤器的片段)都包含在内。
查看此方法(或在 debug 中运行)以查看您的插件来自何处:
org.eclipse.pde.internal.launching.launcher.BundleLauncherHelper.getMergedBundleMap(ILaunchConfiguration, boolean)
PDE is at first resolving all includes from the launch configuration's selected features. After that all dependencies from the included plugins are added. As you pointed out, PDE is going through the workspace and target for that. Another thing is that all fragments (except those not matching filters) are included when their host plugin is included.
Take a look into this method (or run in debug ) to see where your plugins come from:
org.eclipse.pde.internal.launching.launcher.BundleLauncherHelper.getMergedBundleMap(ILaunchConfiguration, boolean)
PDE 会忽略在 IDE 中启动应用程序的功能配置!因此,您工作区中的所有插件都会被使用。
但您可以关闭您不会启动的项目。
PDE ignores the features configuration for launching your application within the IDE! Because of that all plug-ins in your workspace will be used.
But you can close the project which you will not launch.