2012-09-13 12 views
11

Estoy intentando importar el proyecto para eclipsar mediante programación. No quiero usar el modo UI.Importación mediante programación de un proyecto existente en Eclipse

A continuación se muestra el código que he usado para importar el proyecto:

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

estoy recibiendo sólo la carpeta de proyecto junto con .location file, .markers.snap archivo y .syncinfo.snap archivos, pero no estoy recibiendo la carpeta de origen y etc

+0

¿Seguro que el proyecto que son Importar ya es un proyecto de Java? es decir, ¿hay un archivo .project preexistente y tiene la naturaleza java y el constructor java en él? –

+0

¿desea crear un nuevo proyecto con su propio conjunto de archivos o desea que el espacio de trabajo apunte al proyecto existente? –

Respuesta

11

Uso org.eclipse.ui.wizards.datatransfer.ImportOperation

Pruebe algo como esto:

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

Su código parece estar bien. ¿Qué quiere decir exactamente con que no pudo obtener la carpeta de origen? ¿Has intentado actualizar el proyecto?

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

+0

Sí. No obteniendo la carpeta fuente – user1584844

+0

Bueno, si no proporciona más código fuente (obtenga el código de la carpeta fuente), no podré ayudarlo. –

0

probablemente Te estás perdiendo una línea con

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