以编程方式导入现有的项目到Eclipse(Programmatically importing an

2019-06-28 08:04发布

我试图导入项目以编程蚀通过。 我不想使用的用户界面模式。

下面是我用来导入该项目的代码:

IProjectDescription description = ResourcesPlugin.getWorkspace().loadProjectDescription(  new Path("PROJECT_PATH/.project"));
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(description.getName());
project.create(description, null);
project.open(null);

我与相处只有项目文件夹.location file.markers.snap文件和.syncinfo.snap文件,但我没有得到源文件夹等。

Answer 1:

使用org.eclipse.ui.wizards.datatransfer.ImportOperation

尝试是这样的:

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

String baseDir = // location of files to import
ImportOperation importOperation = new ImportOperation(project.getFullPath(),
        new File(baseDir), FileSystemStructureProvider.INSTANCE, overwriteQuery);
importOperation.setCreateContainerStructure(false);
importOperation.run(new NullProgressMonitor());


Answer 2:

你可能缺少一条线

description.setLocation(new Path("/absolute/path/to/project/folder"));


Answer 3:

您的代码似乎是罚款。 那你完全按你的意思是不能得到的源文件夹? 您是否尝试刷新该项目?

project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());



Answer 4:

我可以使用下面的代码将焦点设置到一个新导入的项目:

IProjectDescription description = ResourcesPlugin
  .getWorkspace()
  .loadProjectDescription(new Path("PROJECT_PATH/.project"));

description.setLocation(new Path("/absolute/path/to/project/folder"));

IProject project = ResourcesPlugin
  .getWorkspace()
  .getRoot()
  .getProject(description.getName());

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


文章来源: Programmatically importing an existing project into Eclipse