Mi piace definire scalacOptions
al livello superiore in questo modo (ad esempio, ignorando l'asse del progetto per ora):In SBT, come si sostituisce scalacOptions per console in tutte le configurazioni?
scalacOptions += "-Ywarn-unused-import"
Ma poi ho capito che è troppo rigida per console
. Così ho provato a impostare:
scalacOptions in console ~= (_ filterNot (_ == "-Ywarn-unused-import"))
Ma questo non ha funzionato (ancora ottenuto (fatale) avvisi nel REPL).
ho usato inspect
per cercare di capire il perché:
> 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
Nota: console
è
- fornito da
compile:console
- dipende
compile:console::scalacOptions
poi:
> 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
Nota: compile:console::scalacOptions
è
- fornito da
compile:scalacOptions
- non raggiunge
*:console::scalacOptions
(che è quello che ho definito) nella catena delegazione
mia domanda è come fare Sovrascrivo scalacOptions
per tutte le configurazioni per console? È possibile cambiare la catena di delega?
Vorrei evitare di dover impostare scalacOptions in (Compile, console)
(come sarebbe duplicato per (Test, console)
) o definire un val di opzioni scalac.
Vedere anche https: // github.com/typelevel/wartremover/issues/131 –