복붙노트

[SCALA] SBT 정지 종료하지 않고 실행

SCALA

SBT 정지 종료하지 않고 실행

당신은 어떻게 종료하지 않고 SBT의 실행을 종료합니까?

나는 CTRL + C를 시도하고 있지만, SBT를 종료합니다. 열린 SBT를 유지하면서 단지 실행중인 응용 프로그램을 종료하는 방법이 있나요?

해결법

  1. ==============================

    1.기본 구성에서, 당신의 실행은 쉽게 개별적으로 죽일 수 SBT가 실행되고있는 동일한 JVM에서 발생합니다.

    기본 구성에서, 당신의 실행은 쉽게 개별적으로 죽일 수 SBT가 실행되고있는 동일한 JVM에서 발생합니다.

    별도의 러닝을 할 경우, 포크 (fork)에 설명 된대로, 당신은 죽일 수 JVM 갈래 그 JVM SBT의 JVM에 영향을주지 않고 (모든 수단 운영 시스템이 제공에 의한) :

    fork in run := true
    
  2. ==============================

    2.SBT 버전 0.13.5에서 당신은 당신의 build.sbt에 추가 할 수 있습니다

    SBT 버전 0.13.5에서 당신은 당신의 build.sbt에 추가 할 수 있습니다

    cancelable in Global := true
    

    그것은으로 정의된다 "활성화 (True) 또는 비활성화 (False) CTRL + C와 인터럽트 태스크 실행하는 기능." 있는 Key 정의

    당신이 스칼라를 사용하는 경우 2.12.7+ 당신은 또한 CTRL + C로 컴파일을 취소 할 수 있습니다. https://github.com/scala/scala/pull/6479 참조

    보고 된 몇 가지 버그가 있습니다 :

  3. ==============================

    3.내가 SBT에서 실행되는 응용 프로그램의 메인 루프를 제어 할 때 다음과 같은 유용한을 발견했습니다.

    내가 SBT에서 실행되는 응용 프로그램의 메인 루프를 제어 할 때 다음과 같은 유용한을 발견했습니다.

    (build.sbt에서) 응용 프로그램을 실행할 때 나는 포크에 SBT에게 :

    fork in run := true
    

    또한 (build.sbt에서) 응용 프로그램에 SBT 쉘에서 앞으로 표준 입력에 SBT 알려주기 :

    connectInput in run := true
    

    마지막으로, 응용 프로그램의 주 스레드에서, 나는 파일 끝 표준 입력 한 후 셧다운 JVM에서 기다립니다

    while (System.in.read() != -1) {}
    logger.warn("Received end-of-file on stdin. Exiting")
    // optional shutdown code here
    System.exit(0)
    

    물론, 당신은 표준 입력 및 종료뿐만 아니라 메인 스레드를 읽고 어떤 스레드를 사용할 수 있습니다.

    마지막으로, 시작 SBT, 선택적으로 당신은, 실행을 실행하려는 하위 프로젝트로 전환합니다.

    이제, 당신은 SBT 쉘에서 CTRL-D를 입력하여 가까운, 표준 입력을 프로세스를 중지 할 때.

  4. ==============================

    4.SBT-리볼버를 사용하는 것이 좋습니다. 우리는 우리의 회사에서 사용하고 정말 편리합니다. 당신이 할 수있는 요구하는지 경우 :

    SBT-리볼버를 사용하는 것이 좋습니다. 우리는 우리의 회사에서 사용하고 정말 편리합니다. 당신이 할 수있는 요구하는지 경우 :

    reStart
    
    reStop
    

    구성 build.sbt 파일에 필요없이.

    귀하는 추가하여이 플러그인을 사용할 수 있습니다 :

    addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1")
    

    프로젝트 / plugins.sbt으로

  5. from https://stackoverflow.com/questions/5137460/sbt-stop-run-without-exiting by cc-by-sa and MIT license