WartRemover ist ein Scalac-Plugin. In der Regel wird es über ein sbt-Plugin konfiguriert .
Ich möchte WartRemover in meinem sbt-Projekt als separate Konfiguration oder Task ausführen können, ohne die normale Ausführung von compile
zu beeinträchtigen.
Nachdem ich Warentremover zu meinem plugins.sbt
hinzugefügt habe, habe ich einige Varianten ausprobiert.
Danach enthielt scalacOptions
ungefähr das, was ich in meiner neuen lint
-Konfiguration und in der compile
-Konfiguration erwartet hatte. Wenn ich jedoch lint:compile
und compile
mit sbt im Debug-Modus laufen ließ, konnte ich die Befehlszeilenargumente für scalac sehen, und beide oder keine Befehle würden die -P:wartremover:...
-Schalter passieren lassen. Das war überraschend, denn nur lint:scalacOptions
zeigte die -P:wartremover:...
-Schalter.
Wie kann ich eine separate sbt-Konfiguration oder Aufgabe erstellen, die mit WartRemover kompiliert wird, ohne compile:compile
zu beeinflussen?
Ich glaube, Sie sind uns sehr nahe gekommen. Hier sind einige Details:
Compile
configuration update
task verwenden, wobei libraryDependencies
setting verwendet wird. addCompilerPlugin
ist eine Abkürzung für libraryDependencies
mit CompilerPlugin
configuration. scalaOptions
für die Konfiguration, an der Sie interessiert sind. sources
von Compile
holen, um sie in Lint
zu verwenden. Wenn Sie die Implementierung von % sehen co_de% macht es sowohl wartremoverSettings
als auch addCompilerPlugin
. Sie haben zwei Möglichkeiten, Warentremover in scalacOptions
zu deaktivieren:
Compile
zu injizieren, und entfernen Sie dann manuell das Wartremover-Compiler-Plugin von wartremoverSettings
. Compile
. Hier ist die erste Option.