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


我试图通过编程方式将项目导入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 文件,但我没有得到源文件夹等。


1033
2017-09-13 07:19


起源

您确定要导入的项目已经是一个Java项目吗? ie-是否有一个预先存在的.project文件,它是否有java性质和java构建器? - Andrew Eisenberg
是否要使用自己的文件集创建新项目,还是希望工作区指向现有项目? - Chris Gerken


答案:


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

11
2017-09-14 18:44





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

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


0
2017-09-13 08:14



是。没有获取源文件夹 - user1584844
好吧,如果你不提供更多的源代码(获取源文件夹代码),我将无法帮助你。 - Tobias Willig


你可能错过了一条线

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

0
2018-02-25 14:36