2013-10-25 82 views
6

我目前正在給IntelliJ Scala插件一個旋轉,有一件事是讓我煩惱一點。編譯時會收到3條警告。Scala警告,IntelliJ和編譯器標記

Warning: scala: Recompiling 4 files 
Warning: scala: 
Warning: scala: there were 1 deprecation warnings; re-run with -deprecation for details 

它爲什麼會警告文件正在重新編譯?可以關閉嗎?最後,空警告是什麼? :d

+1

您正在使用哪個Scala插件?我正在使用這個http://www.jetbrains.net/confluence/display/SCA/Scala+Plugin+for+IntelliJ+IDEA。您可以通過這種方式添加編譯器選項:打開「Project Structure」 - >選擇「Facets」 - >選擇「Scala/Scala」 - >更改「Additional compiler options」。它也不會打印無意義的警告。 – longhua

回答

20

在的IntelliJ 14:

  1. 造就喜好Intellij IDEA > Preferencescmd + ,
  2. 查找Scala Compiler。另外,它的下Build, Execution, Deployment > Compiler > Scala Compiler
  3. 檢查選項Deprecation warnings

重建項目!

Screenshot of preferences to enable deprecation flag.

+0

在Linux下,這個表單位於File> Other Settings> Default Settings下 – CPS

5

JVM參數編譯參數 - 第一個被用於實際運行您的代碼,後來以前只是把它編譯成字節碼。您需要打開項目設置和調整選項有:

enter image description here

+3

該解決方案在Intellij 14中已經過時。不再有Scala方面。 – seanmcl

+2

新位置在[katfang的答案](http://stackoverflow.com/a/27932678/27358)。 –

+0

@JustDanyul請接受katfang的回答,而不是這個 –

6

我想補充有關IntelliJ IDEA的報告警告和錯誤幾句話。

JetBrains使用它自己的scala分析器來識別和報告錯誤。有時它會報告虛假的錯誤或警告。我認爲這是因爲從編譯器的角度來看,scala是更加複雜的語言,然後是其他語言。即使所有的官方Scala規範都已實現,但仍有一些已被省略的情況(請閱讀:總會有一些錯誤)。如果您發現某些報告爲IntelliJ IDEa的錯誤/警告,這對scalac編譯器來說可以,您可以隨時嘗試將其報告爲一個錯誤(IntelliJ IDEa支持報告錯誤)。 JetBrains的夥計們會解決它。

超過一些scala庫使用的宏是編譯器擴展,它增加了一些額外的編譯器行爲。如果IDE確實知道它們的規範,它就不會將這些非標準代碼識別爲錯誤。最好意識到這一點。我認爲同樣涉及Eclipse Scala IDE。

總結以上所有: 不要相信所有的警告和錯誤的IntelliJ或其他IDE,除非它編譯以及使用scalac告訴你的。