Scala警告、IntelliJ和编译器标志

Scala警告、IntelliJ和编译器标志,scala,intellij-idea,Scala,Intellij Idea,我现在正在给IntellijScala插件一个旋转,有一件事让我有点烦。我在编译时收到3条警告 Warning: scala: Recompiling 4 files Warning: scala: Warning: scala: there were 1 deprecation warnings; re-run with -deprecation for details 为什么它会警告我正在重新编译文件?可以关掉吗?最后,空警告是怎么回事JVM参数不是编译器参数——首先用于实际运行代码,然后

我现在正在给IntellijScala插件一个旋转,有一件事让我有点烦。我在编译时收到3条警告

Warning: scala: Recompiling 4 files
Warning: scala:
Warning: scala: there were 1 deprecation warnings; re-run with -deprecation for details
为什么它会警告我正在重新编译文件?可以关掉吗?最后,空警告是怎么回事JVM参数不是编译器参数——首先用于实际运行代码,然后用于将代码编译成字节码。您需要打开项目设置并在其中调整选项:


我想补充几句关于IntelliJ IDEa报告的警告和错误

JetBrains使用自己的scala分析器来识别和报告错误。有时它会报告假错误或警告。我认为这是因为从编译器的角度来看,scala语言比其他语言复杂得多。即使所有官方的scala规范都实现了,也有一些情况被忽略了(阅读:总是有一些bug)。如果您发现IntelliJ IDEa报告为错误/警告,而这对于scalac编译器来说是可以的,那么您可以尝试将其报告为bug(IntelliJ IDEa支持报告bug)。JetBrains的人会修好的

有些scala库使用的宏是编译器扩展,增加了一些额外的编译器行为。如果IDE知道他们的规范,它就不会将这些非标准代码识别为错误。最好意识到这一点。我认为Eclipse scala IDE也是如此

综上所述: 不要相信IntelliJ或其他IDE告诉您的所有警告和错误,除非它使用scalac编译良好。在IntelliJ 14中:

  • 打开首选项
    Intellij IDEA>preferences
    cmd+,
  • 查找
    Scala编译器
    。或者,它位于
    Build,Execution,Deployment>Compiler>Scala编译器下
  • 选中
    弃用警告选项
  • 重建您的项目


    您使用的是哪个Scala插件?我正在用这个。您可以这样添加编译器选项:打开“项目结构”->选择“Facets”->选择“Scala/Scala”->更改“其他编译器选项”。而且它也不会打印无意义的警告。这个解决方案从Intellij 14开始就过时了。不再有Scala方面。新位置在中。@JustDanyul请接受katfang的答案,而不是Linux中的此答案。此表单位于“文件>其他设置>默认设置”下