Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Eclipse产品中启用软件更新?_Eclipse_Product_P2 - Fatal编程技术网

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

如何在Eclipse产品中启用软件更新?,eclipse,product,p2,Eclipse,Product,P2,在我的Eclipse项目中,我定义了一个简单的插件(bundle),一个包含插件的特性和一个包含该特性的产品 当我导出poduct时(通过产品编辑器的“Eclipse产品导出向导”),它确实构建了产品。我可以发布产品,一切正常(插件就在那里,做它应该做的事情) 唯一的问题是,产品用户无法使用软件更新菜单(帮助->软件更新)安装其他Eclipse功能。软件更新子菜单(“查找并安装…”和“管理配置…”)变灰 我们应该向产品添加哪些插件和/或功能,以便产品可以使用软件更新菜单接受其他功能 我试图添加一

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

当我导出poduct时(通过产品编辑器的“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"/>


有人确切地知道需要做什么(在产品定义级别,如果可能的话)才能让软件更新菜单工作吗?

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


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

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


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

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

在产品配置文件中

.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

添加
org.eclipse.equinox.p2.ui.sdk
确实在测试eclipse产品时添加了菜单项Install new software。尽管菜单项Install new software失败,但出现错误消息“找不到正在运行的配置文件实例。此应用程序的config.ini文件中可能未正确设置eclipse.p2.data.area和eclipse.p2.profile属性。”。要解决这个问题,我必须添加
org.eclipse.equinox.ds
bundle。@LoicO你能告诉我应该在哪里添加这些行吗?哪个文件?谢谢,我用靛蓝,我看不到e4。另外,我的产品不是一个RCP应用程序,只是一个Eclipse产品(我想我可以说是一个品牌Eclipse)。原来缺少的两个包是:
org.eclipse.equinox.p2.ui.sdk
org.eclipse.equinox.ds
。谢谢