java - 是否可以解耦 Eclipse 的代码索引功能?

标签 java eclipse indexing static-analysis

我想为大学类(class)编写一个静态分析器。为了为该工具提供更多功能,我希望能够查找调用层次结构(如 Ctrl+Alt+H 在 Eclipse 中所做的那样)。这也必须是一个快速操作,因此查找可能必须针对索引而不是字节码扫描来完成。

但是,我认为编写一个 Eclipse 插件过于雄心勃勃。相反,我宁愿解耦创建代码索引的 Eclipse 部分,并使用库进行查找。用户界面将在命令行上,以简化实现。

我读到 Eclipse 使用 Lucene 来进行索引[1],但是,对于 Eclipse 允许的功能,在 Lucene 之上必须有大量的工作。

问题是,是否可以解耦 Eclipse 的索引功能以供重用?如果没有,是否有其他现成可用的库可以执行我所讨论的那种处理?

[1] Lucene 实战 (IIRC)


编辑

我认为有些误解。我不想检查类层次结构,我想检查调用 层次结构。这就是为什么要讨论搜索和索引(某种形式,尽管这可能不是正确的术语)。检查类层次结构可能比检查调用层次结构要便宜得多。

至于编写 Eclipse 插件,是的,我很乐意,但鉴于这项任务的时间非常短,我不太可能完成它。但这是有用的信息,你们中的一些人认为这并不像我想象的那么难。

也许我过于强调 Eclipse,我突然想到我真的在寻找任何提供 API 以通过字节码检查调用图的工具。

感谢您到目前为止的回答!

最佳答案

走字节码一点也不难,也不慢。我们以交互速度对大型 Java 代码项目进行了静态分析。因为,你的时间很短,我建议你在 eclipse 中修改类似调用图查看器插件 [1] 的东西。此外,Eclipse 代码很难理解,您最好编写自己的插件,尽可能多地使用 Eclipse 未记录的 API。

[1] http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-1326.html

关于java - 是否可以解耦 Eclipse 的代码索引功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681218/

相关文章:

java - 空对象引用上的 android.app.ActivityThread.getApplicationThread()'

java - 线程调度-notify调用后线程如何获取锁

java - 对象关系和类关系?

android - 如何在android中使用url获取域的IP地址?

mysql - 外键和索引

java - 如何在 Java 中将 boolean 条件转换为整数类型而不在已编译的字节码和 JITed 机器码中进行分支或跳转

java - Eclipse 插件开发 : Listener for change of view of opened document

eclipse - 将 $this 链接到 Aptana 中的特定类的 phpdoc 语法是什么?

postgresql - PostgreSQL:一个索引快而另一个索引慢

mysql - 使用索引满足 MySQL 条件