使用 p2 卸载功能

Uninstalling a feature with p2

我*正在尝试使用 p2 操作从 eclipse 中卸载功能。

我正在做些什么来实现这一目标:

OperationFactory of = new OperationFactory();
ProfileChangeOperation operation;
//toInstall = List<IVersionedId> only containing the feature
operation = of.createUninstallOperation(toInstall, repos, monitor);

在那之后,我运行正在执行操作。

该功能将被成功卸载,但作为该功能一部分的插件(不依赖于其他功能/插件)将保持安装状态。这是不需要的行为。

我已经尝试添加

org.eclipse.equinox.p2.ui.sdk.scheduler/gcOnStartup=true 

到我的产品属性。

我也试过运行

eclipse.exe -application org.eclipse.equinox.p2.garbagecollector.application -profile DefaultProfile

没有效果。

我加了

-profileProperties org.eclipse.update.install.features=true

我的程序参数。没有效果。

此外,我尝试以编程方式实现 GC,但也没有效果。

知道如何解决这个问题吗? P2 安装功能,包括所有依赖插件。我希望它在卸载操作时表现相同。

只有在使用 tycho 构建时才会出现此问题。我通过将 org.eclipse.update.configurator with start level 4 和 Auto-Start = false 添加到我的产品启动级别来设法解决这个问题。

此外,我在产品配置中的属性中添加了值为 false 的 org.eclipse.update.reconcile

通过使用这种特殊的设置组合,卸载的插件将不再显示。