java - IDE 是否编译您的 Java 或 Scala 源代码以提供静态分析?
问题描述
IDE 提供了许多很酷的功能,例如跳转到声明和语法高亮。只是出于好奇,为了提供这些功能,我的 IDE(IntelliJ)是否首先必须编译我的源代码?就像我注意到,每当我在 IDE 中打开一个新项目时,都会出现延迟,它会生成一个“目标”文件夹。IDE 是否会在我没有明确运行代码或告诉它编译的情况下编译我的任何源代码?
解决方案
这里发生了几件事。导入 sbt 项目时,IntelliJ 会运行 sbt 来提取项目结构。这需要一段时间,并且 sbt 自己会创建target
文件夹。
大多数 IDE 功能,例如跳转到声明,不需要编译。IntelliJ 将代码解析为它自己的内部语法模型,该模型允许索引、错误突出显示等。这个模型允许对有编译错误的代码进行许多重构和分析。索引通常发生在后台进程中的初始导入之后。
推荐阅读
- javascript - JavaScript 中的 Promise 问题
- tensorflow - keras predict_generator 输出形状
- python - 使用“in”语句时的元组 vs 列表 vs 字典
- javascript - 检查传单地图上带有特定图标的标记
- php - 使用操作挂钩创建自定义 Wordpress REST API 端点
- leaflet - 读取 *geojson 文件的 style- 和 onEachFeature 函数有什么区别
- firebase - 菜单中的 Firebase 服务帐号
- c# - 如何在 Gridviewcolumn.celltemplate 中创建包含菜单项的上下文菜单?无法使示例代码工作
- python - 解析iso格式日期时间字符串的最有效方法
- asp.net - “/”中的服务器错误应用程序访问被拒绝