Ich denke, Ctrl + Dfunktioniert nur für Play Framework.
EnverOsmanov
Antworten:
44
In der Standardkonfiguration werden Ihre Läufe in derselben JVM ausgeführt, in der sbt ausgeführt wird, sodass Sie sie nicht einfach separat beenden können.
Wenn Sie Ihren Lauf in einer separaten, gegabelten JVM ausführen, wie unter Forking beschrieben , können Sie diese JVM (auf jede von Ihrem Betriebssystem angebotene Weise) beenden, ohne die JVM von sbt zu beeinträchtigen:
Ich versuche das zu tun. Insbesondere habe ich Folgendes implementiert: stackoverflow.com/questions/3868863/…, aber sbt wird immer noch beendet, wenn ich STRG + C mache. Wie töte ich nur die gegabelte JVM?
dsg
2
mit killüber die Befehlszeile oder im Task-Manager (Windows) oder Force Quit oder Activity Monitor (Mac OS X) usw.
Seth Tisue
Führen Sie nach dem Gabeln, um alles Java außer sbt zu töten, aus:kill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
dsg
1
Ich liebe diese Idee, aber sie scheint nicht zu helfen. Ich führe sbt 0.13.1 aus und füge diese Zeile meiner build.sbt-Datei hinzu.
Doub1ejack
Sie müssen die runmit STRG + D
Timofey
82
Ab sbt Version 0.13.5 können Sie Ihre build.sbt hinzufügen
cancelable in Global:=true
Es ist definiert als "Aktiviert (true) oder deaktiviert (false) die Fähigkeit, die Taskausführung mit STRG + C zu unterbrechen." in der Schlüsseldefinition
Ctrl+D
funktioniert nicht.Ctrl + D
funktioniert nur für Play Framework.Antworten:
In der Standardkonfiguration werden Ihre Läufe in derselben JVM ausgeführt, in der sbt ausgeführt wird, sodass Sie sie nicht einfach separat beenden können.
Wenn Sie Ihren Lauf in einer separaten, gegabelten JVM ausführen, wie unter Forking beschrieben , können Sie diese JVM (auf jede von Ihrem Betriebssystem angebotene Weise) beenden, ohne die JVM von sbt zu beeinträchtigen:
quelle
kill
über die Befehlszeile oder im Task-Manager (Windows) oder Force Quit oder Activity Monitor (Mac OS X) usw.kill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
run
mit STRG + DAb sbt Version 0.13.5 können Sie Ihre build.sbt hinzufügen
Es ist definiert als "Aktiviert (true) oder deaktiviert (false) die Fähigkeit, die Taskausführung mit STRG + C zu unterbrechen." in der Schlüsseldefinition
Wenn Sie Scala 2.12.7+ verwenden, können Sie die Kompilierung auch mit STRG + C abbrechen. Referenz https://github.com/scala/scala/pull/6479
Es wurden einige Fehler gemeldet:
quelle
Ich habe Folgendes nützlich gefunden, wenn ich die Kontrolle über die Hauptschleife der Anwendung habe, die von sbt ausgeführt wird.
Ich sage sbt, dass es beim Ausführen der Anwendung (in build.sbt) gegabelt werden soll:
Ich fordere sbt außerdem auf, stdin von der sbt-Shell an die Anwendung weiterzuleiten (in build.sbt):
Schließlich warte ich im Hauptthread der Anwendung auf das Dateiende auf stdin und schalte dann die JVM aus:
Natürlich können Sie jeden Thread zum Lesen von stdin und shutdown verwenden, nicht nur den Haupt-Thread.
Starten Sie abschließend sbt und wechseln Sie optional zu dem Teilprojekt, das Sie ausführen möchten.
Wenn Sie den Prozess jetzt stoppen möchten, schließen Sie den Standard, indem Sie STRG-D in die sbt-Shell eingeben.
quelle
Erwägen Sie die Verwendung von sbt-revolver . Wir verwenden es in unserer Firma und es ist wirklich praktisch. Für was Sie fragen, können Sie tun mit:
Ohne die Datei build.sbt konfigurieren zu müssen.
Sie können dieses Plugin verwenden, indem Sie Folgendes hinzufügen:
Zu Ihrem Projekt / plugins.sbt
quelle