如何以编程方式执行Java IDE为方法引用执行的搜索?

Ste*_*ven 10 java eclipse intellij-idea intellij-plugin static-code-analysis

您知道eclipse的所有引用功能(搜索>参考>工作区或Ctrl-Shift-G)吗?我该如何以编程方式运行?

我有一个庞大的代码库,我需要审计安全违规,并需要链接大约十几个条件.

是否有可以用Java分析大型项目(我有1GB的源文件)的库?这是我需要回答的问题:

  • 传入接口列表,找到这些接口的所有实现
  • 搜索该列表以获取我们的安全库的调用
  • 搜索上面列表中引用的每个方法,以确认已进行了正确的授权库调用.

我可以在一天内手动执行此操作,但宁可花2写一个漂亮的脚本来为我做这项工作.

我可以用来编写Eclipse的这些常见任务的脚本上的任何线索吗?理想情况下,我想执行命令行,因此它们可以重复和编写脚本,但显然会采取我能得到的.

vik*_*eve 1

您可以在 IntelliJ IDEA 中编写自己的插件来完成此任务。

通过编程方式,您可以利用PSI(程序结构接口)树来搜索各种代码元素(类、变量、方法、语句等),浏览代码库,然后执行您需要执行的操作。

以下是一些参考:

  1. IntelliJ IDEA 插件开发

  2. PSI 食谱

  3. PsiViewer 插件

您需要做的所有事情(查找实现、搜索调用、搜索特定语句的方法)都是可能的。

如果您下载 IntelliJ IDEA 社区版的源代码,您可以查看代码并了解这些事情是如何完成的。

或者您可以在这里发布具体问题(带有 标签intellij-plugin),像 CrazyCoder 这样的人可能会很乐意帮助您:)

至于代码库的范围(你说 1 GB?),你只需尝试一下,看看效果如何。最坏的情况是,您可以分部分分析您的代码库。

无论如何,插件开发在 IntelliJ IDEA 中非常强大,我推荐这种方法用于您想要自己以编程方式控制的任何类型的 java 代码分析或重构(并且尚未包含在开箱即用的重构中) )。

祝你好运!