2013-10-25 4 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. Вы можете добавить параметр компилятора таким образом: откройте «Структура проекта» -> выберите «Границы» -> выберите «Scala/Scala» -> измените «Дополнительные параметры компилятора». И он также не печатает бессмысленные предупреждения. – longhua

ответ

20

В IntelliJ 14:

  1. Всплывающие предпочтения Intellij IDEA > Preferences или cmd + ,
  2. Посмотрите Scala Compiler. С другой стороны, это под Build, Execution, Deployment > Compiler > Scala Compiler
  3. Проверьте опции для Deprecation warnings

Rebuild вашего проекта!

Screenshot of preferences to enable deprecation flag.

+0

В Linux эта форма находится в разделе «Файл»> «Другие настройки»> «Настройки по умолчанию» – 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.

Смежные вопросы