在做eclipse插件开发中,特别是自动生成代码或者uml->代码的插件中,有时需要刷新一下文件夹
或者重新编译一下.那如何实现这两个操作呢。
一、实现刷新
1、一个关键的接口是org.eclipse.core.resources.IResource
调用这个接口的refreshLocal方法即可。例如refreshLocal(IResource.DEPTH_INFINITE, null)
2、到底有哪些类实现了这个接口呢?
来看一下继承结构
首先继承自IResource的接口有IContainer、IFolder、IProject、IWorkspaceRoot、IFile一共5个
加上IResource 6个,凡是实现这些接口的都可以。
3、接口的继承结构
接口 extends
IResource 无
IContainer IResource
IFile IResource
IFolder IContainer
IProject IContainer
IWorkspaceRoot IContainer
4、类的继承结构
类 extends implements
Resource 无 IResource
Container Resource IContainer
File Resource IFile
Folder Container IFolder
Project Container IProject
WorkspaceRoot Container IWorkspaceRoot
二、实现重编译(也就是clean)
clean all:
ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.CLEAN_BUILD,
monitor);
clean one project
((IProject) selection[i]).build(IncrementalProjectBuilder.CLEAN_BUILD, new
SubProgressMonitor(monitor, 1));
或者重新编译一下.那如何实现这两个操作呢。
一、实现刷新
1、一个关键的接口是org.eclipse.core.resources.IResource
调用这个接口的refreshLocal方法即可。例如refreshLocal(IResource.DEPTH_INFINITE, null)
2、到底有哪些类实现了这个接口呢?
来看一下继承结构
首先继承自IResource的接口有IContainer、IFolder、IProject、IWorkspaceRoot、IFile一共5个
加上IResource 6个,凡是实现这些接口的都可以。
3、接口的继承结构
接口 extends
IResource 无
IContainer IResource
IFile IResource
IFolder IContainer
IProject IContainer
IWorkspaceRoot IContainer4、类的继承结构

类 extends implements
Resource 无 IResource
Container Resource IContainer
File Resource IFile
Folder Container IFolder
Project Container IProject
WorkspaceRoot Container IWorkspaceRoot二、实现重编译(也就是clean)
clean all:
ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.CLEAN_BUILD,
monitor);
clean one project
((IProject) selection[i]).build(IncrementalProjectBuilder.CLEAN_BUILD, new
SubProgressMonitor(monitor, 1));
本文介绍在Eclipse插件开发过程中如何实现文件夹刷新及项目重编译的方法。通过调用IResource接口的refreshLocal方法进行刷新,并利用ResourcesPlugin的workspace对象执行全量构建(clean build)来完成重编译。
607

被折叠的 条评论
为什么被折叠?



