首页 > 解决方案 > IDE 是否编译您的 Java 或 Scala 源代码以提供静态分析?

问题描述

IDE 提供了许多很酷的功能,例如跳转到声明和语法高亮。只是出于好奇,为了提供这些功能,我的 IDE(IntelliJ)是否首先必须编译我的源代码?就像我注意到,每当我在 IDE 中打开一个新项目时,都会出现延迟,它会生成一个“目标”文件夹。IDE 是否会在我没有明确运行代码或告诉它编译的情况下编译我的任何源代码?

标签: javaeclipsescalaintellij-ideastatic-analysis

解决方案


这里发生了几件事。导入 sbt 项目时,IntelliJ 会运行 sbt 来提取项目结构。这需要一段时间,并且 sbt 自己会创建target文件夹。

大多数 IDE 功能,例如跳转到声明,不需要编译。IntelliJ 将代码解析为它自己的内部语法模型,该模型允许索引、错误突出显示等。这个模型允许对有编译错误的代码进行许多重构和分析。索引通常发生在后台进程中的初始导入之后。


推荐阅读