Wenn ich Scala-Code kompiliere sbt compile
, sagt SBT durch Ausführen :
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
Wie mache ich das? (Aus SBT heraus?)
Wenn ich Scala-Code kompiliere sbt compile
, sagt SBT durch Ausführen :
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
Wie mache ich das? (Aus SBT heraus?)
Antworten:
Während in der sbt-Shell (wenn Sie Ihre nicht ändern möchten build.sbt
):
$ sbt
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")
> compile
> exit
Durch in ThisBuild
, set
wendet die Einstellungen für alle Teilprojekte, wie gut.
Sie können den obigen Befehl auch als einzelnen Befehl in der Befehlszeile ausführen.
sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile'
Der Trick besteht darin, ;
(Semikolons) zu verwenden, um Befehle zu trennen, und '
( ;
Häkchen ), um alle getrennten Befehle als ein einziges Argument für sbt einzuschließen.
in Global
anstatt in ThisBuild
auch mit Teilprojekten gleich gut zu funktionieren - aber warum wird letzteres bevorzugt? oder ist es sogar?
scalacOptions := Seq("-unchecked", "-deprecation")
Fügen Sie diese Einstellung Ihrer build.sbt hinzu, und wenn Sie ein Projekt mit mehreren Modulen haben, fügen Sie sie den Einstellungen jedes Projekts hinzu.
Mit der Zeit entstehen neue Lösungen. Jetzt können Sie den Scala-Compiler erneut ausführen, ohne die gesamte Projektwiederherstellung durchzuführen.
Sie müssen das ensime-sbt-Plugin installieren :
addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0")
Danach können Sie die ensimeCompileOnly
Aufgabe verwenden, um eine einzelne Datei zu kompilieren. SBT ermöglicht die Konfiguration der Einstellungen pro Aufgabe, sodass Sie diese nur für diese Aufgaben ändern können:
set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala
-deprecation
ist eine schreckliche Idee. Ensime dient zur Unterstützung von On-the-Fly-Annotationen in Editoren. Außerdem hat Ensime selbst eine Reihe von Problemen mit einigen Arten von Projekten (insbesondere solchen, die Makros häufig verwenden).