Eu acho que Ctrl + Dfunciona apenas para o framework Play.
EnverOsmanov
Respostas:
44
Na configuração padrão, suas execuções acontecem na mesma JVM que o sbt está executando, portanto, você não pode matá-las facilmente separadamente.
Se você executar sua execução em uma JVM bifurcada separada, conforme descrito em Forking , poderá matá-la (por qualquer meio que seu sistema operacional oferecer) sem afetar a JVM da sbt:
Estou tentando fazer isso. Especificamente, eu implementei: stackoverflow.com/questions/3868863/…, mas o sbt ainda sai quando eu faço CTRL + C. Como eu mato apenas a JVM bifurcada?
dsg 20/03
2
com killa partir da linha de comando, ou no Gerenciador de Tarefas (Windows), ou Forçar Encerrar ou Activity Monitor (Mac OS X), etc.
Seth tisue
Depois de bifurcar, para matar tudo o que é java, exceto o sbt, execute:kill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
dsg
1
Eu amo essa idéia, mas não parece ajudar. Estou correndo sbt 0.13.1 e adicionando esta linha no meu arquivo build.sbt ..
doub1ejack
você precisa matar o runcom CTRL + D
Timofey
82
Na versão 0.13.5 do sbt, você pode adicionar ao seu build.sbt
cancelable in Global:=true
É definido como "Habilita (verdadeiro) ou desabilita (falso) a capacidade de interromper a execução da tarefa com CTRL + C". no definição de chaves
Ctrl+D
não funciona.Ctrl + D
funciona apenas para o framework Play.Respostas:
Na configuração padrão, suas execuções acontecem na mesma JVM que o sbt está executando, portanto, você não pode matá-las facilmente separadamente.
Se você executar sua execução em uma JVM bifurcada separada, conforme descrito em Forking , poderá matá-la (por qualquer meio que seu sistema operacional oferecer) sem afetar a JVM da sbt:
fonte
kill
a partir da linha de comando, ou no Gerenciador de Tarefas (Windows), ou Forçar Encerrar ou Activity Monitor (Mac OS X), etc.kill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
run
com CTRL + DNa versão 0.13.5 do sbt, você pode adicionar ao seu build.sbt
É definido como "Habilita (verdadeiro) ou desabilita (falso) a capacidade de interromper a execução da tarefa com CTRL + C". no definição de chaves
Se você estiver usando o Scala 2.12.7+, também poderá cancelar a compilação com CTRL + C. Referência https://github.com/scala/scala/pull/6479
Existem alguns erros relatados:
fonte
Eu achei o seguinte útil quando tenho controle sobre o loop principal do aplicativo que está sendo executado a partir do sbt.
Eu digo ao sbt para bifurcar ao executar o aplicativo (no build.sbt):
Eu também digo ao sbt para encaminhar o stdin do shell sbt para o aplicativo (no build.sbt):
Finalmente, no encadeamento principal do aplicativo, espero o final do arquivo no stdin e, em seguida, encerro a JVM:
Obviamente, você pode usar qualquer thread para ler stdin e shutdown, não apenas o thread principal.
Por fim, inicie o sbt, alternativamente, alterne para o subprojeto que deseja executar, execute.
Agora, quando você quiser interromper o processo, feche seu stdin digitando CTRL-D no shell sbt.
fonte
Considere usar o sbt-revolver . Nós o usamos em nossa empresa e é realmente útil. O que você está pedindo pode ser feito com:
Sem a necessidade de configurar o arquivo build.sbt.
Você pode usar este plugin adicionando:
Para o seu projeto / plugins.sbt
fonte