如何以编程方式更新给定的Eclipse包?

如何以编程方式更新给定的Eclipse包?,eclipse,eclipse-plugin,p2,Eclipse,Eclipse Plugin,P2,当我试图以编程方式更新特定的Eclipse插件时,我遇到了一些问题 我已经上传了重现问题所需的最小项目集。而且,我已经在中详细描述了问题以及重现问题的步骤。使用是更新指定捆绑包的最简单方法 您可以通过查询配置文件来指定要更新的已安装的IUs IProfile profile = ...; UpdateOpertation updateOperation = new UpdateOperation(session, profile.query(QueryUtil.ALL_UNITS, null).

当我试图以编程方式更新特定的Eclipse插件时,我遇到了一些问题

我已经上传了重现问题所需的最小项目集。而且,我已经在中详细描述了问题以及重现问题的步骤。

使用是更新指定捆绑包的最简单方法

您可以通过查询配置文件来指定要更新的已安装的IUs

IProfile profile = ...;
UpdateOpertation updateOperation = new UpdateOperation(session, profile.query(QueryUtil.ALL_UNITS, null).toSet());
但明确更新所有IUs并不是最佳实践。最好的方法是只更新根IU(始终是产品IU或顶级功能)


Updater
类已经在使用
UpdateOperation
。请看。@reprogrammer,您不理解UpdateOperation的参数。IUs集合是要更新的已安装IUs的集合。请参阅更新后的答案。此外,如果您使用某个功能(成为根IU)安装捆绑包,找到更新的唯一方法就是更新该功能。安装该功能时,p2将不接受捆绑包更新。
IProfile profile = ...;
UpdateOpertation updateOperation = new UpdateOperation(session, profile.query(QueryUtil.createIUQuery("theidofmyproductiu"), null).toSet());