Eclipse 3.5可以发现插件目录中的所有包吗?

ing*_*ger 9 eclipse osgi p2 equinox eclipse-3.5

简单的用例:使用简单的脚本组装Eclipse产品,只需将bundle转储到插件目录中.这曾经与3.3一起工作 - 3.5它被破坏了:我的应用程序没有启动,因为找不到应用程序插件.

问题:解决这个问题的最简单方法是什么?这似乎是整个升级过程中唯一的痛苦.


尝试:我猜这对于P2来说是禁止的:它维护了bundles.info文件,这可能非常聪明......对我来说有点太聪明了.

我有一些想法:

  1. 我可以完全跳过P2并回到简单的旧的,简单的 - 发现机制吗?
  2. 我可以将插件目录设置为"监视目录"
    • 看起来我需要使用p2.reconciler ...哦等等,它已被弃用:-( bug 251561 ..(感谢VonC指针)
  3. config.ini中的这个旧设置仍然可以工作吗?(现在用'simpleconfigurator'代替)osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start
  4. 我应该打电话给(p2)导演吗?"请选择我的插件":)
  5. 我会为此避免使用dropin文件夹 - 这对最终用户来说更有用.
  6. 如果可能的话,我会避免搞乱bundles.info.

我并不关心我产品中的所有智能功能 - 实际上用户根本不使用内置更新机制.所以我想KISS(即:刚启动),并在需要时添加更多高级支持.

我在Eclipse论坛上问了这个问题,但还没有答案,所以真的很感激一些启示.另外,请随意纠正我的假设 - 我刚刚阅读了P2文档,这些文档有时令人困惑.谢谢!


:实际上上面的选项3似乎总是起作用 - 感谢Francis确认这一点!(它最初不起作用,但这可能是由一些缺失的deps引起的).我现在唯一的问题是,一些Eclipse包实际上需要simpleconfigurator.所以我想知道将它交换出来会导致问题.

Von*_*onC 5

即使它没有完全回答你所追求的内容,你也可以指定eclipse.ini(就像我在这里描述的那样):

-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins
Run Code Online (Sandbox Code Playgroud)

这确实指定p2来监视您选择的任何目录以检测其中的插件.


另一个想法来源可能是本文:编写和更新自定义Eclipse发行版

创建包含这些内容的基于功能的产品并不难,并进行产品构建以达到以下目的:

替代文字


注意:和解的概念在eclipse Wiki中有详细说明.

对于Eclipse的某些安装,将存在共享安装的概念 - 这可能是在Linux系统的情况下,其中通过包(可能是RPM)安装基本软件集,或者可能在Maya部署中共享配置文件在中央服务器中定义.
在这两种情况下,都需要在共享配置文件和用户当前的配置文件实例化之间执行协调,包括他们可能进行的任何修改.

此机制的一部分是Dropins Reconciler设置.虽然,如错误251561所示,但不建议在那里放置太多插件.


Fra*_* IV 5

你可以改变你的配置/ config.ini文件,以使用org.eclipse.equinox.simpleconfigurator(它基于P2的配置),而是使用org.eclipse.update.configurator这是只是老派的方式配置plugins目录中的任何内容.这应该给你你想要的.