sbtで「詳細を-deprecationで再実行する」方法は?


回答:


217

sbtシェル

sbtシェルで(変更したくない場合build.sbt):

$ sbt
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")
> compile
> exit

によりin ThisBuildsetすべてのサブプロジェクトにも設定を適用します。

コマンドライン

上記をコマンドラインで単一のコマンドとして実行することもできます。

sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile' 

コツは、;(セミコロン)を使用してコマンドを区切り、'(ティック)を使用してすべて;のコマンドをsbtの単一の引数として含めることです。


2
@retronym:サブプロジェクトと同様にうまく機能するin Global代わりにin ThisBuild、なぜ後者が好ましいのですか?それとも?
エリックカプルン2014

23
scalacOptions := Seq("-unchecked", "-deprecation")

この設定をbuild.sbtに追加し、マルチモジュールプロジェクトがある場合は、すべてのプロジェクトの設定に追加します。


-2

時が経つにつれ、新しいソリューションが出現します。したがって、プロジェクト全体を再ビルドせずに、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

1
取得するためだけにEnsimeを追加するの-deprecationはひどい考えです。Ensimeは、エディターでオンザフライの注釈をサポートするためのものです。それに加えて、Ensime自体には、ある種のプロジェクト(特に、マクロを多用するプロジェクト)で多くの問題があります。
Zacの

ensimeプラグインは、太った言語サーバーの小さな仲間です。個別に使用できます。または、そこから一部の機能をコピーすることもできます。
ayvango
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.