以编程方式将现有项目导入Eclipse

时间:2012-09-13 07:19:14

标签: java eclipse import eclipse-plugin

我正在尝试通过编程方式将项目导入到eclipse中。我不想使用UI模式。

以下是我用于导入项目的代码:

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文件,但我没有获得源文件夹等。

4 个答案:

答案 0 :(得分:11)

使用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());

答案 1 :(得分:1)

你可能错过

的一行
segment.fighters

答案 2 :(得分:0)

您的代码似乎没问题。您无法获得源文件夹,这究竟是什么意思?你试过刷新项目吗?

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

答案 3 :(得分:-1)

我能够使用以下代码将焦点设置为新导入的项目:

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);