Предупреждения об устаревании и функции для файлов определения проекта 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 принадлежит проекту meta (build), он устанавливает компилятор Scala для конфигурации сборки, а не для среды для проекта под сборкой.

Он был протестирован с образцом sbt multi-project:

[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.")
}