[英]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
,我是从IWorkspace
( ResourcesPlugin.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.