繁体   English   中英

在OSGi应用程序中获取Eclipse项目信息

[英]Getting Eclipse project info within an OSGi application

我正在研究一个项目,该项目使用Eclipse AST检查Eclipse Java项目并获取源文件的一些信息。 现在它是一个Eclipse插件,但是我们需要使其独立于Eclipse,我们仅使用Eclipse的AST库。

我尝试复制所需的JAR并将其作为普通的Java应用程序运行(不是Eclipse插件,不依赖Eclipse),但是随后我开始遇到一些错误,因为当我在Eclipse之外运行该应用程序时,AST无法获取Eclipse需要的信息(项目数据),在某些情况下返回null。 例如,当我访问方法调用( MethodInvocationNode类)时,我需要知道这是哪个类的方法,但是由于我解释了AST错误,所以我不能MethodInvocationNode.resolveMethodBinding()在这种情况下, MethodInvocationNode.resolveMethodBinding()返回null)。

我想我需要在Eclipse插件中获取一个IProject ,我是从IWorkspaceResourcesPlugin.getWorkspace() )获得的,我认为它在所有Eclipse插件中都可用。

现在,我想如果我可以制作一个OSGi应用程序,也许我可以以某种方式获得该IProject但是我不知道该怎么做。 文档和教程并没有太大帮助。 我极有可能遗漏了有关Eclipse项目和/或OSGi应用程序的一些基本要点:)。

简而言之,如何在OSGi应用程序中获取IProject数据?

首先,每个Eclipse应用程序都是一个OSGi应用程序,因此在纯OSGi环境或Eclipse中做事没有区别。

其次在“工作区”是一个Eclipse的具体结构,所以使得你的应用程序“独立”的从Eclipse的是没有意义的,一个项目的内容,特别是Java项目都是特定的日食(所以你也必须解析.classpath文件与Eclipse的API,可以知道必须编译哪些资源,解析.project文件等)。

工作区机制是org.eclipse.core.resources包的一部分。 您需要将其包含在OSGi应用程序中。 如前所述,您可以像在Eclipse环境中一样访问所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM