回答:
sbtシェルで(変更したくない場合build.sbt
):
$ sbt
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")
> compile
> exit
によりin ThisBuild
、set
すべてのサブプロジェクトにも設定を適用します。
上記をコマンドラインで単一のコマンドとして実行することもできます。
sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile'
コツは、;
(セミコロン)を使用してコマンドを区切り、'
(ティック)を使用してすべて;
のコマンドをsbtの単一の引数として含めることです。
in Global
代わりにin ThisBuild
、なぜ後者が好ましいのですか?それとも?
scalacOptions := Seq("-unchecked", "-deprecation")
この設定をbuild.sbtに追加し、マルチモジュールプロジェクトがある場合は、すべてのプロジェクトの設定に追加します。
時が経つにつれ、新しいソリューションが出現します。したがって、プロジェクト全体を再ビルドせずに、scalaコンパイラーを再実行できるようになりました。
ensime-sbtプラグインをインストールする必要があります:
addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0")
その後、ensimeCompileOnly
タスクを使用して単一のファイルをコンパイルできます。SBTではタスクごとの設定を構成できるため、そのタスクについてのみ変更できます。
set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala
-deprecation
はひどい考えです。Ensimeは、エディターでオンザフライの注釈をサポートするためのものです。それに加えて、Ensime自体には、ある種のプロジェクト(特に、マクロを多用するプロジェクト)で多くの問題があります。