我怎样才能将项目类型识别为eclipse插件?

时间:2013-11-16 16:46:55

标签: java eclipse pde

我想从Eclipse插件中识别当前所选项目的类型(java / c / ...);如果可能的话还有一些其他信息(使用过的库和什么不是),基本上是围绕项目的所有信息。

我一直在谷歌和这里搜索几个小时,但无济于事。我是否可以访问我想要的信息而无需选择一些虚假的扩展点(列出的那些似乎都不适合我想做的事情)?我的意思是,我现在不想向Eclipse添加任何内容,我只想将这些内容打印到控制台中。 (从小处开始)

很抱歉长期咆哮,但我不知道如何更好地表达我的问题。

1 个答案:

答案 0 :(得分:6)

许多此类信息存储在项目文件夹的.project文件中。访问信息的正确方法是通过项目的IProject对象。

IProject.getDescription方法会返回包含项目信息的IProjectDescription

要确定项目类型,您需要查看项目描述中定义的naturesIProjectDescription.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);
上面的

Platformorg.eclipse.core.runtime.Platform(Eclipse中还有其他Platform类,所以一定要找到正确的类。)

如果您只有项目名称,请使用:

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