如何在Eclipse产品中启用软件更新?

时间:2012-09-13 20:14:44

标签: eclipse product p2

在我的Eclipse项目中,我定义了一个简单的插件(bundle),一个包含插件的功能和一个包含该功能的产品。

当我导出产品时(通过产品编辑器的“Eclipse产品导出向导”),它确实构建了产品。我可以启动产品,一切正常(插件就在那里并做它本应该做的事情)。

唯一的问题是产品的用户无法使用“软件更新”菜单(“帮助” - >“软件更新”)安装其他Eclipse功能。软件更新子菜单(“查找并安装...”和“管理配置...”)显示为灰色。

我们应该在产品中添加哪些插件和/或功能,以便产品可以使用“软件更新”菜单接受其他功能?

我尝试添加一堆org.eclipse.equinox.p2。*插件,但它仍无效。

  <plugin id="org.eclipse.equinox.p2.artifact.repository"/>
  <plugin id="org.eclipse.equinox.p2.console"/>
  <plugin id="org.eclipse.equinox.p2.core"/>
  <plugin id="org.eclipse.equinox.p2.director"/>
  <plugin id="org.eclipse.equinox.p2.director.app"/>
  <plugin id="org.eclipse.equinox.p2.directorywatcher"/>
  <plugin id="org.eclipse.equinox.p2.discovery"/>
  <plugin id="org.eclipse.equinox.p2.discovery.compatibility"/>
  <plugin id="org.eclipse.equinox.p2.engine"/>
  <plugin id="org.eclipse.equinox.p2.extensionlocation"/>
  <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
  <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
  <plugin id="org.eclipse.equinox.p2.metadata"/>
  <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
  <plugin id="org.eclipse.equinox.p2.operations"/>
  <plugin id="org.eclipse.equinox.p2.publisher"/>
  <plugin id="org.eclipse.equinox.p2.publisher.eclipse"/>
  <plugin id="org.eclipse.equinox.p2.ql"/>
  <plugin id="org.eclipse.equinox.p2.reconciler.dropins"/>
  <plugin id="org.eclipse.equinox.p2.repository"/>
  <plugin id="org.eclipse.equinox.p2.repository.tools"/>
  <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
  <plugin id="org.eclipse.equinox.p2.touchpoint.natives"/>
  <plugin id="org.eclipse.equinox.p2.transport.ecf"/>
  <plugin id="org.eclipse.equinox.p2.ui"/>
  <plugin id="org.eclipse.equinox.p2.ui.discovery"/>
  <plugin id="org.eclipse.equinox.p2.ui.importexport"/>
  <plugin id="org.eclipse.equinox.p2.updatechecker"/>
  <plugin id="org.eclipse.equinox.p2.updatesite"/>

是否有人确切知道需要做什么(如果可能,在产品定义级别)以使软件更新菜单正常工作?

3 个答案:

答案 0 :(得分:3)

菜单条目“安装新软件”由插件 org.eclipse.equinox.p2.ui.sdk 提供。您应该包含它以在RCP中显示该菜单条目。

如果您的RCP是基于功能的,我认为您应该只包含与p2相关的功能来简化流程。

答案 1 :(得分:0)

我不知道所需的p2包的完整列表,但这是您可以轻松生成它的方法:使用新向导创建 e4&gt; e4应用项目。这将生成一个产品文件,其中包含p2可更新产品所需的所有软件包。

如果您有基于功能的产品,则功能org.eclipse.rcporg.eclipse.e4.rcp也应该为您提供可更新的产品

答案 2 :(得分:0)

我也面临同样的问题,并通过以下步骤解决;

在产品配置文件中,

.product file --> In Configuration Tab

Specify custom start levels for the following plug-ins,
    org.eclipse.equinox.ds start level 2, auto start true 
    org.eclipse.equinox.simpleconfigurator start level 1, auto start true
    org.eclipse.equinox.common start level 2, auto start true
    org.eclipse.core.runtime start level 4, auto start true