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

标签 java eclipse intellij-idea intellij-plugin static-code-analysis

<分区>

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

我有一个庞大的代码库,我需要对其进行安全违规审计,并且需要链接大约十几个条件。

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

  • 传入接口(interface)列表,找到这些接口(interface)的所有实现
  • 在该列表中搜索对我们安全库的调用
  • 搜索上面列表中引用的每个方法,以确认调用了正确的授权库。

我可以在一天内手动完成这项工作,但我宁愿花 2 时间编写一个不错的脚本来为我完成这项工作。

关于我可以用来编写这些 Eclipse 做得很好的常见任务的库的任何线索?理想情况下,我想在命令行中执行它们,这样它们就可以重复和编写脚本,但显然会尽我所能。

最佳答案

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

以编程方式,您可以利用 PSI(程序结构接口(interface))树来搜索各种代码元素(类、变量、方法、语句等),在您的代码库中导航,然后执行任何操作你需要做的。

这里有一些引用:

  1. IntelliJ IDEA Plugin Development

  2. PSI Cookbook

  3. PsiViewer Plugin

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

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

或者您可以在此处发布具体问题(使用 intellij-plugin 标记),像 CrazyCoder 这样的人可能会帮助您解决问题:)

关于代码库的范围(你说 1 GB?),你只需要尝试一下,看看进展如何。最坏的情况是,您可以分段分析您的代码库。

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

祝你好运!

关于java - 如何以编程方式执行 Java IDE 对方法引用的搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17455521/

相关文章:

javascript - WebStorm 认为错误构造函数的参数为​​零

java - 需要一些帮助来理解这个图形匹配代码

java - com.google.api.config.ServiceConfigSupplier - 无法获取服务的默认配置版本(仅在本地主机上)

java - 如何退出 main 方法中的 showUsage() 方法?

java - 从 Eclipse 中的当前工作区获取所有类

java - 从 Maven 导入 Selenium Webdriver 到 Intellij IDEA

java - 格式化 spring 错误消息参数

java - 为什么 Eclipse m2e 插件将错误格式的 jar 部署到 Tomcat 服务器

java - Maven Eclipse 调试 "JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)"

java - 将类移至 IntelliJ 中的新/其他包