Creo que Ctrl + Dfunciona solo para el marco de Play.
EnverOsmanov
Respuestas:
44
En la configuración predeterminada, sus ejecuciones ocurren en la misma JVM que sbt está ejecutando, por lo que no puede eliminarlas fácilmente por separado.
Si ejecuta su ejecución en una JVM separada y bifurcada, como se describe en Forking , puede eliminar esa JVM (por cualquier medio que ofrezca su sistema operativo) sin afectar la JVM de sbt:
Estoy intentando hacer esto. Específicamente, he implementado: stackoverflow.com/questions/3868863/… pero sbt todavía se cierra cuando hago CTRL + C. ¿Cómo mato solo la JVM bifurcada?
dsg
2
con killdesde la línea de comando, o en el Administrador de tareas (Windows), o Forzar salida o Monitor de actividad (Mac OS X), etc.
Seth Tisue
Después de bifurcar, para matar todo java excepto sbt, ejecute:kill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
dsg
1
Me encanta esta idea, pero no parece ayudar. Estoy corriendo SBT 0.13.1 y añadiendo esta línea en mi archivo build.sbt ..
doub1ejack
tienes que matar runcon CTRL + D
Timofey
82
Desde sbt versión 0.13.5 puede agregar a su build.sbt
cancelable in Global:=true
Se define como "Habilita (verdadero) o deshabilita (falso) la capacidad de interrumpir la ejecución de tareas con CTRL + C". en la definición de claves
Ctrl+D
No funciona.Ctrl + D
funciona solo para el marco de Play.Respuestas:
En la configuración predeterminada, sus ejecuciones ocurren en la misma JVM que sbt está ejecutando, por lo que no puede eliminarlas fácilmente por separado.
Si ejecuta su ejecución en una JVM separada y bifurcada, como se describe en Forking , puede eliminar esa JVM (por cualquier medio que ofrezca su sistema operativo) sin afectar la JVM de sbt:
fuente
kill
desde la línea de comando, o en el Administrador de tareas (Windows), o Forzar salida o Monitor de actividad (Mac OS X), etc.kill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
run
con CTRL + DDesde sbt versión 0.13.5 puede agregar a su build.sbt
Se define como "Habilita (verdadero) o deshabilita (falso) la capacidad de interrumpir la ejecución de tareas con CTRL + C". en la definición de claves
Si está utilizando Scala 2.12.7+, también puede cancelar la compilación con CTRL + C. Referencia https://github.com/scala/scala/pull/6479
Se informaron algunos errores:
fuente
He encontrado lo siguiente útil cuando tengo control sobre el bucle principal de la aplicación que se ejecuta desde sbt.
Le digo a sbt que se bifurque cuando se ejecuta la aplicación (en build.sbt):
También le digo a sbt que reenvíe stdin desde el shell de sbt a la aplicación (en build.sbt):
Finalmente, en el hilo principal de la aplicación, espero el final del archivo en stdin y luego apago la JVM:
Por supuesto, puede usar cualquier hilo para leer stdin y apagar, no solo el hilo principal.
Finalmente, inicie sbt, opcionalmente cambie al subproyecto que desea ejecutar, ejecute.
Ahora, cuando desee detener el proceso, cierre su stdin escribiendo CTRL-D en el shell sbt.
fuente
Considere usar sbt-revolver . Lo usamos en nuestra empresa y es muy útil. Porque lo que estás pidiendo se puede hacer con:
Sin necesidad de configurar el archivo build.sbt.
Puedes usar este complemento agregando:
A su proyecto / plugins.sbt
fuente