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.