Устаревание и предупреждения о функциях для файлов определений проекта SBT

При получении определения проекта SBT я получаю предупреждения об устаревших функциях (например, файлы внутри project каталог). Версия SBT - 0.13.0.

Я не получаю больше информации об этом, установив scalacOptions := Seq("-feature", "-deprecation") кажется, это работает только для исходных файлов проекта, а не для файлов определений проекта.

Кто-нибудь знает, как я могу установить устаревание и предупреждение для компилятора, когда он компилирует определение проекта?

[info] Loading project definition from /home/xxx/website/project
[warn] there were 2 deprecation warning(s); re-run with -deprecation for details
[warn] there were 4 feature warning(s); re-run with -feature for details
[warn] two warnings found

1 ответ

Создайте project/build.sbt файл определения проекта со следующим содержанием:

scalacOptions := Seq("-feature", "-deprecation")

С любого *.sbt файл под project принадлежит мета (сборке) проекта, он устанавливает компилятор Scala для конфигурации сборки, а не среду для проекта под сборкой.

Он был протестирован с примером мультипроекта SBT:

[info] Compiling 1 Scala source to /Users/jacek/sandbox/so/multi-0.13.1/project/target/scala-2.10/sbt-0.13/classes...
[warn] /Users/jacek/sandbox/so/multi-0.13.1/project/Build.scala:4: method error in object Predef is deprecated: Use `sys.error(message)` instead
[warn]   lazy val e = error("Launcher did not provide the Ivy home directory.")
[warn]                ^
[warn] one warning found

... когда он скомпилировал следующее project/Build.scala:

import sbt._

object Build extends Build {
  lazy val e = error("Launcher did not provide the Ivy home directory.")
}
Другие вопросы по тегам