Lubię definiowania scalacOptions
na najwyższym poziomie jak tak (jako przykład, ignorując oś projektu na razie):W sbt, w jaki sposób przesłonić opcje scalacOptions dla konsoli we wszystkich konfiguracjach?
scalacOptions += "-Ywarn-unused-import"
Ale potem zdałem sobie sprawę, że zbyt surowe dla console
. Dlatego starałem ustawienie:
scalacOptions in console ~= (_ filterNot (_ == "-Ywarn-unused-import"))
Ale to nie działa (wciąż mam (śmiertelne) ostrzeżenia w REPL).
użyłem inspect
aby spróbować zrozumieć, dlaczego:
> inspect console
[info] Task: Unit
[info] Description:
[info] Starts the Scala interpreter with the project classes on the classpath.
[info] Provided by:
[info] {file:/a/}b/compile:console
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:261
[info] Dependencies:
[info] compile:console::compilers
[info] compile:console::initialCommands
[info] compile:console::fullClasspath
[info] compile:console::taskTemporaryDirectory
[info] compile:console::scalaInstance
[info] compile:console::streams
[info] compile:console::cleanupCommands
[info] compile:console::scalacOptions
[info] Delegates:
[info] compile:console
[info] *:console
[info] {.}/compile:console
[info] {.}/*:console
[info] */compile:console
[info] */*:console
[info] Related:
[info] test:console
Uwaga: console
jest
- dostarczone przez
compile:console
- zależy
compile:console::scalacOptions
następnie:
> inspect compile:console::scalacOptions
[info] Task: scala.collection.Seq[java.lang.String]
[info] Description:
[info] Options for the Scala compiler.
[info] Provided by:
[info] {file:/a/}b/compile:scalacOptions
[info] Defined at:
[info] (sbt.Classpaths) Defaults.scala:1593
[info] Reverse dependencies:
[info] compile:console
[info] Delegates:
[info] compile:console::scalacOptions
[info] compile:scalacOptions
[info] *:console::scalacOptions
[info] *:scalacOptions
[info] {.}/compile:console::scalacOptions
[info] {.}/compile:scalacOptions
[info] {.}/*:console::scalacOptions
[info] {.}/*:scalacOptions
[info] */compile:console::scalacOptions
[info] */compile:scalacOptions
[info] */*:console::scalacOptions
[info] */*:scalacOptions
[info] Related:
[info] *:console::scalacOptions
[info] compile:scalacOptions
[info] *:scalacOptions
[info] */*:scalacOptions
[info] test:scalacOptions
Uwaga: compile:console::scalacOptions
jest
- dostarczone przez
compile:scalacOptions
- nie osiągnie
*:console::scalacOptions
(która jest, co określono) w łańcuchu Przekazanie
Moje pytanie brzmi, jak zrobić Zastępuję scalacOptions
dla wszystkich konfiguracji konsoli? Czy można zmienić łańcuch delegacji?
Chciałbym uniknąć konieczności ustawiania scalacOptions in (Compile, console)
(ponieważ byłby powielony dla (Test, console)
) lub zdefiniowania wartości opcji scalac.
Zobacz także https: // github.com/typelevel/wartremover/issues/131 –