在运行时清除缓存 - Eclipse e4

Clear the cache during runtime - Eclipse e4

我想在 运行 时间内清除 Eclipse e4 缓存(.metadata 目录)。

有很多帖子通过在 运行 配置中设置复选框来清除缓存,但我在代码中找不到任何关于清除缓存的内容。

与编写自己的方法相比,我更愿意使用已经编写好的方法(如果有的话)。

如果我要自己执行此操作,那么我将在 @PostContextCreate 期间在生命周期管理器中执行此操作。

有什么方法可以帮我完成这个操作,还是我应该只删除缓存目录?

更新 这是我正在尝试解决的问题。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=430090#add_comment

为了在运行时清除缓存,我覆盖了 ResourceHandler 并将其添加到 loadMostRecentModel

final Method m = getClass().getSuperclass().getDeclaredMethod("getWorkbenchSaveLocation", new Class<?>[] {});
m.setAccessible(true);
final File workbenchSaveLocation = (File) m.invoke(this, (Object[]) null);
workbenchSaveLocation.delete();  

我使用反射,因为父方法是私有的。最好这样做而不是自己编写代码来获取文件,因为它可以确保我始终获得正确的位置。

首先,删除 .metadata 文件夹会损坏用户数据:首选项、启动配置,谁知道还有什么 - 这取决于特定的 plug-in 实施。

此外,您的更新可能包含带有新服务和扩展的新捆绑包和片段。 并且用户可以重新排列视图并执行 workbench 模型坚持的其他事情。

=>

删除workbench模型并不能解决所有问题,请考虑以下几点: