[sbt] sbt에서“자세한 내용은 사용 중단 된 상태로 다시 실행”하는 방법은 무엇입니까?

내가 스칼라 코드를 실행하여 컴파일 할 때 sbt compile, SBT는 말합니다 :

$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...

어떻게합니까? (SBT 내에서?)



답변

sbt 쉘

sbt shell에서 (을 변경하지 않으려는 경우 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에 대한 단일 인수로 포함시킵니다 .


답변

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

이 설정을 build.sbt에 추가하고 다중 모듈 프로젝트가있는 경우 모든 프로젝트 설정에 추가하십시오.


답변

시간이 흐름에 따라 새로운 솔루션이 등장합니다. 이제 전체 프로젝트를 다시 빌드하지 않고도 스칼라 컴파일러를 다시 실행할 수 있습니다.

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


답변