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


답변:


217

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에 대한 단일 인수로 포함시킵니다 .


2
@retronym : in Global대신 in ThisBuild하위 프로젝트에서도 동일하게 작동하지만 왜 후자가 선호됩니까? 아니면 짝수입니까?
Erik Kaplun

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

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


-2

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

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 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.