Eclipse 4 RCP插件:如何以编程方式将项目导入工作空间

时间:2019-11-20 09:28:47

标签: java eclipse plugins rcp

我目前正在编写Eclipse 4 RCP插件,以使用CLI将项目导入Eclipse。我发现一些代码片段在启动Eclipse之前非常适合导入项目。 但是,当我已经在Eclipse中运行时尝试使用应用程序时,这些项目将无法正确导入。

这是我到目前为止使用的代码:

IWorkspace workspace = ResourcesPlugin.getWorkspace();
IProjectDescription description = workspace.loadProjectDescription(new Path(projectFile.toString()));
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(description.getName());
if (project.isOpen() == false) {  

    project.create(description, null);
    project.open(null)

    IOverwriteQuery overwriteQuery = new IOverwriteQuery() {
        public String queryOverwrite(String file) { 
        return ALL; }
    };

    String baseDir = projectFile.getParent();
    description.setLocation(new Path(projectFile.getAbsolutePath()));
    ImportOperation importOperation = new ImportOperation(project.getFullPath(),
        new File(baseDir), FileSystemStructureProvider.INSTANCE, overwriteQuery);
    importOperation.setCreateContainerStructure(false);

    try {
        importOperation.run(null);
    } catch (InvocationTargetException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    project.refreshLocal(IProject.DEPTH_INFINITE, null);
    workspace.getRoot().refreshLocal(IProject.DEPTH_INFINITE, null);
    System.out.println("Importing project  " +description.getName());

因此,当我在Eclipse运行时执行我的应用程序时,所有项目都已创建并打开,但是它们没有显示在Eclipse Package Explorer中,而当我退出Eclipse时,它们全部丢失了。

我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

当您使用“作为Eclipse应用程序运行”来运行程序时,Eclipse使用单独测试工作区启动Eclipse的新实例。您的导入将导入到测试工作区中。

“运行”>“运行配置”对话框将向您显示测试工作区的位置。

导入到主工作区的唯一方法是将插件安装到主Eclipse中。

请注意,Eclipse的两个实例不能安全地访问相同的工作空间,因为Eclipse并非旨在支持该工作空间。 Eclipse通常无论如何都会拒绝这样做,但是如果您以某种方式进行管理,则可能会损坏工作区。

在单独的测试工作区中进行所有开发。如果确定插件可以正常工作,则可以将其安装在主Eclipse中。