Domanda

Voglio identificare il tipo (Java / C / ...) del progetto attualmente selezionato da un plug-in Eclipse;Se possibile, anche alcune altre informazioni (librerie usate e cosa), fondamentalmente tutte le informazioni che circondano il progetto.

Ho cercato Google e qui per un paio d'ore ora, senza alcun risultato.Posso persino accedere alle informazioni che voglio senza selezionare un punto di prolunga falso (nessuno di quelli elencati sembra adattarsi a quello che voglio fare)?Voglio dire, non voglio effettivamente aggiungere nulla a Eclipse in questo momento, voglio solo stampare quella roba nella console.(Inizia piccola e roba)

Scusa per il lungo rant, ma non so come meglio esprimere il mio problema in questo momento.

È stato utile?

Soluzione

Un sacco di queste informazioni è memorizzato nel file .project nella cartella del progetto. Il modo corretto per accedere alle informazioni avviene tramite l'oggetto IProject per il progetto.

Il metodo IProject.getDescription ti restituisce un IProjectDescription contenente informazioni sul progetto.

Per determinare il tipo di progetto è necessario guardare il natures definito nella descrizione del progetto. Il metodo IProjectDescription.getNatureIds() restituisce una serie di ID naturali. Un progetto Java avrà il org.eclipse.jdt.core.javanature e un plug-in avrà org.eclipse.pde.PluginNature (e un plug-in Java avrà sia queste nature).

per trovare il IProject. Se hai una selezione in qualcosa come il pacchetto o il progetto Explorer prova:

IResource resource = (IResource)Platform.getAdapterManager().getAdapter(obj, IResource.class);
.

o

IFile file = (IFile)Platform.getAdapterManager().getAdapter(obj, IFile.class);
.

Il metodo getProject() di queste interfacce ti offre il IProject. Puoi anche essere in grado di fare:

IProject project = (IProject)Platform.getAdapterManager().getAdapter(obj, IProject.class);
.

Platform in quanto sopra è org.eclipse.core.runtime.Platform (ci sono altre classi Platform in Eclipse, quindi assicurati di ottenerne la corretta).

Se hai solo un nome di progetto, utilizzare:

IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top