Lorsque je compile du code Scala, en exécutant sbt compile
, SBT dit:
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
Comment je fais ça? (Depuis SBT?)
Lorsque je compile du code Scala, en exécutant sbt compile
, SBT dit:
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
Comment je fais ça? (Depuis SBT?)
Réponses:
Dans le shell sbt (si vous ne voulez pas changer votre build.sbt
):
$ sbt
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")
> compile
> exit
En raison de in ThisBuild
, set
applique également les paramètres à tous les sous-projets.
Vous pouvez également exécuter ce qui précède en une seule commande sur la ligne de commande.
sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile'
L'astuce consiste à utiliser ;
(points-virgules) pour séparer les commandes et '
( ;
cocher ) pour inclure toutes les commandes séparées comme un seul argument de sbt.
in Global
au lieu de in ThisBuild
fonctionne aussi bien avec les sous-projets - mais pourquoi ce dernier est-il préféré? ou est-ce même?
scalacOptions := Seq("-unchecked", "-deprecation")
Ajoutez ce paramètre à votre build.sbt et, si vous avez un projet multi-module, ajoutez-le aux paramètres de chaque projet.
Au fil du temps, de nouvelles solutions émergent. Ainsi, vous pouvez maintenant réexécuter le compilateur scala sans lancer la reconstruction complète du projet.
Vous devez installer le plugin ensime-sbt :
addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0")
Après cela, vous pouvez utiliser la ensimeCompileOnly
tâche pour compiler un seul fichier. SBT autorise la configuration des paramètres par tâches, vous pouvez donc changer pour ces tâches uniquement:
set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala
-deprecation
est une idée terrible. Ensime est destiné à prendre en charge les annotations à la volée dans les éditeurs. En outre, Ensime lui-même a une foule de problèmes avec certains types de projets (notamment ceux qui utilisent fortement des macros).