题
我想从 Eclipse 插件中识别当前所选项目的类型 (java/c/...);如果可能的话,还有一些其他信息(使用的库和不使用的库),基本上是与项目相关的所有信息。
我已经在谷歌和这里搜索了几个小时,但没有结果。我什至可以在不选择一些虚假扩展点的情况下访问我想要的信息(列出的扩展点似乎都不适合我想要做的事情)吗?我的意思是,我现在不想向 Eclipse 添加任何内容,我只想将这些内容打印到控制台中。(从小事做起)
抱歉长篇大论,但我现在不知道如何更好地表达我的问题。
解决方案
许多此类信息存储在 .project
文件在项目文件夹中。访问信息的正确方法是通过 IProject
项目的对象。
这 IProject.getDescription
方法返回你一个 IProjectDescription
包含有关该项目的信息。
要确定项目类型,您需要查看 natures
项目描述中定义的。这 IProjectDescription.getNatureIds()
方法返回自然 ID 的数组。Java 项目将具有 org.eclipse.jdt.core.javanature
和一个插件将有 org.eclipse.pde.PluginNature
(Java 插件将具有这两种性质)。
为了找到 IProject
. 。如果您在 Package 或 Project Explorer 中进行了选择,请尝试:
IResource resource = (IResource)Platform.getAdapterManager().getAdapter(obj, IResource.class);
或者
IFile file = (IFile)Platform.getAdapterManager().getAdapter(obj, IFile.class);
这 getProject()
这些接口的方法为您提供了 IProject
. 。您也许还可以这样做:
IProject project = (IProject)Platform.getAdapterManager().getAdapter(obj, IProject.class);
Platform
上面是 org.eclipse.core.runtime.Platform
(还有其他 Platform
Eclipse 中的类,因此请确保获得正确的类)。
如果您只有项目名称,则使用:
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);