2012-09-13 13 views
11

Sto tentando di importare il progetto in eclissi tramite programmazione. Non voglio usare la modalità UI.Importazione programmatica di un progetto esistente in Eclipse

Di seguito è il codice che ho usato per l'importazione del progetto:

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

sto ricevendo solo la cartella del progetto insieme a .location file, .markers.snap di file e .syncinfo.snap file, ma non ricevo la cartella di origine ed ecc

+0

Sei sicuro che il progetto che si sta l'importazione è già un progetto java? cioè c'è un file .project preesistente e ha java nature e java builder in esso? –

+0

vuoi creare un nuovo progetto con il proprio set di file o vuoi che lo spazio di lavoro indichi il progetto esistente? –

risposta

11

Usa org.eclipse.ui.wizards.datatransfer.ImportOperation

provare qualcosa di simile:

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

Il tuo codice sembra andare bene. Cosa vuoi dire esattamente per te non è possibile ottenere la cartella sorgente? Hai provato ad aggiornare il progetto?

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

+0

Sì. Non si ottiene la cartella sorgente – user1584844

+0

Bene se non si fornisce altro codice sorgente (ottenere il codice della cartella sorgente), non sarei in grado di aiutarti. –

0

Probabilmente stai manca una linea con

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