【问题标题】:IntelliJ inspection working for Java files, not for Groovy filesIntelliJ 检查适用于 Java 文件,不适用于 Groovy 文件
【发布时间】:2020-09-25 14:03:08
【问题描述】:

在运行 IntelliJ 时,导入、语法和其他内容的内联更正对于 Groovy 脚本来说似乎是“离线”的。对于 Java,一切正常。

JavaClass.java:

public class JavaClass {
    private final Instant instant;
}
  • 预期:无法解析符号 Instant。导入类 --> Alt-Shift-Enter
  • 实际:无法解析符号Instant。导入类 --> Alt-Shift-Enter

GroovyClass.groovy:

class GroovyClass {
    private final Instant instant
}
  • 预期:无法解析符号Instant。导入类 --> Alt-Shift-Enter
  • 实际:变量“instant”可能尚未初始化

在左侧的“项目”面板中,JavaClass 带有红色下划线,但GroovyClass 没有。直到使用Ctrl-F9 调用编译器才会出现消息Groovyc: unable to resolve class Instant

升级到 IJ 2020.2.2 后,该功能正常运行了一个小时左右,然后再次“离线”。

正在使用的软件:

  • IntelliJ 2020.2.2
  • Java 11 GraalVM CE 20.1.0(内部版本 11.0.7+10-jvmci-20.1-b02)
  • Groovy 3.0.5

我们已经尝试过

  • 使用 IntelliJ 2019.3
  • 升级到2020.2.2
  • 使缓存无效 + 重新启动
  • 使用 Java 8 JDK 而不是 11
  • 打开/关闭省电模式

【问题讨论】:

  • idea.log 中是否有任何与 Groovy 相关的内容(帮助 | 显示日志...)?删除 .idea 文件夹并重新导入项目是否有帮助?

标签: java intellij-idea groovy


【解决方案1】:

感谢 Petr 的建议。

对我有用的是从版本 11 降级到 JDK 8,并确保 IntelliJ 使用与 Gradle 相同的 JDK,这意味着在没有捆绑运行时的情况下使用 IntelliJ。之后我可以使用任何我想要的 IntelliJ,它们都可以正常工作。

作为奖励,我的长期运行进程加快了 18%,IntellIJ 本身也快了(在 Linux 上运行)

  • GraalVM 8 20.1.0.r8 134m
  • GraalVM 11 20.1.0.r11 159m

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多