Ich mag die Definition scalacOptions
auf der obersten Ebene wie so (als Beispiel, ohne auf Projektachse vorerst):In sbt, wie überschreiben Sie scalacOptions für die Konsole in allen Konfigurationen?
scalacOptions += "-Ywarn-unused-import"
Aber dann erkannte ich, dass für console
zu streng ist. Also habe ich versucht Einstellung:
scalacOptions in console ~= (_ filterNot (_ == "-Ywarn-unused-import"))
Aber das hat nicht funktioniert (immer noch (tödliche) Warnungen in der REPL).
verwendete ich inspect
zu versuchen und zu verstehen, warum:
> 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
Hinweis: console
ist
- von
compile:console
- vorgesehen ist abhängig von
compile:console::scalacOptions
dann:
> 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
Hinweis: compile:console::scalacOptions
ist
- von
compile:scalacOptions
- vorgesehen erreicht nicht
*:console::scalacOptions
(das ist, was ich definiert) in der Delegation Kette
Meine Frage ist, wie zu tun Ich überschreibe scalacOptions
für alle Konfigurationen für die Konsole? Ist es möglich, die Delegationskette zu ändern?
Ich möchte vermeiden, scalacOptions in (Compile, console)
setzen (wie es für (Test, console)
dupliziert werden würde) oder definieren ein val von scalac Optionen.
Siehe auch https: // github.com/typelevel/wartremover/issues/131 –